Я использую Mongoid и когда я .update_attributes
на модели, которая имеет references_one
с использованием Params [: model_name] Я получаю ошибку ...Автоматическое отображение ассоциаций Mongoid с использованием Params
@model.update_attributes(params[:model_name])
undefined method `associations' for "...":String
Я понимаю, почему это это происходит. Монгоид пытается сопоставить это значение .association_name
с строковым значением в хеше params, когда то, что он хочет, является ссылкой на другой Mongoid :: Document. Это я получаю.
Что я хотел бы знать, если есть глобальный способ исправить это. На данный момент я получил вокруг этого вопроса, делая что-то вроде следующего ...
model_params = params[:model_name]
if model_params.has_key? :relationship
model_params[:relationship] = RelatedModel.first(:conditions => { :_id => model_params[:relationship] })
end
Это работает но я предпочел бы иметь исправление, которое исправляет это каждый раз, так что я не вручную сопоставляя связанную модель при каждом обновлении. Это было бы вызывающе нарушением СУХОЙ.
За исключением, конечно, RelatedModel бы быть принят в качестве хорошо. Я полагаю, что это достойный подход. Мне придется поиграть с ним. –