我正在尝试遵循有关由mongoid管理的嵌套属性的建议。
我有一个embeds_one Structure的设计模型,我正在尝试使用以下格式更新它:
<%= form_for @design do |f| %>
<%= f.fields_for :structure do |s| %>
<%= s.text_field :navigation %>
<% end %>
<%= default_submit %>
<% end %>
我的控制器中的更新方法如下:
def update
# @design loaded by CANCAN
flash[:notice] = t('flash.updated') if @design.update_attributes(params[:design])
respond_with @design
end
如果我没有在Design模型中指定accepts_nested_attributes_for:structure,那么表单既没有正确初始化(使用导航字段值)也没有更新。
但是,如果我遵循mongoid建议(此处描述http://mongoid.org/docs/relations/nested_attributes.html),嵌入式文档(在这种情况下为结构)不应该这样做。这不是一个大问题,但设计模型在没有此accepted_nested_attributes_for声明的情况下看起来就像DRYer。