我正在尝试在我的用户模型上使用嵌套属性进行设置,以便我可以在一个页面中编辑用户信息和设置信息。这是我的代码:
User.rb
has_one :settings
accepts_nested_attributes_for :settings, :allow_destroy => true
attr_accessor :settings_attributes
视图/用户/注册/ edit.html.erb
<%= f.fields_for :settings do |s| %>
<p>
<%= s.label :newsletter %><br />
<%= s.check_box :newsletter %>
</p>
<% end %>
这看起来很好用,表格显示得很好。但是,当我提交表单时,设置的属性根本不会更改。
我正在使用Rails 3,而Devise创建了我的用户模型。也许我错过了需要进入控制器模型的东西?
答案 0 :(得分:1)
最有可能是因为使用复数而不是单数来设置。尝试改为:
<强>模型强>
has_one :setting
accepts_nested_attributes_for :setting, :allow_destroy => true
查看强>
<%= f.fields_for :setting do |s| %>
你在使用attr_accessor做什么?