rails 3接受嵌套属性不起作用

时间:2011-04-10 02:54:56

标签: ruby-on-rails ruby-on-rails-3 devise nested-attributes

我正在尝试在我的用户模型上使用嵌套属性进行设置,以便我可以在一个页面中编辑用户信息和设置信息。这是我的代码:

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创建了我的用户模型。也许我错过了需要进入控制器模型的东西?

1 个答案:

答案 0 :(得分:1)

最有可能是因为使用复数而不是单数来设置。尝试改为:

<强>模型

has_one :setting
accepts_nested_attributes_for :setting, :allow_destroy => true

查看

<%= f.fields_for :setting do |s| %>

你在使用attr_accessor做什么?