我正在使用Mongoid,当我
.update_attributes
在具有
references_one
@model.update_attributes(params[:model_name])
undefined method `associations' for "...":String
我明白为什么会这样。Mongoid正在尝试绘制这张地图
.association_name
当它想要引用另一个Mongoid::Document时,它将调用params散列中的字符串值。这是我得到的。
我想知道的是,是否有一个全球性的方法来解决这个问题。
目前,我通过做如下的事情来解决这个问题。。。
model_params = params[:model_name]
if model_params.has_key? :relationship
model_params[:relationship] = RelatedModel.first(:conditions => { :_id => model_params[:relationship] })
end
这很有效
但是
我希望有一个每次都能修复的修复程序,这样我就不会在每次更新时手动映射相关模型。这将公然违反DRY。