Ruby on rails 接受未定义方法错误的\u嵌套\u属性\u

Ruby on rails 接受未定义方法错误的\u嵌套\u属性\u,ruby-on-rails,ruby,Ruby On Rails,Ruby,我试图使用accepts\u嵌套的属性来创建一个复杂的表单。根据文档等,我建立了如下模型: 用户模型: require 'digest' class User < ActiveRecord::Base attr_accessor :password attr_accessible :first_name, :last_name, :email, :password, :password_confirmation, :ducks_attribut

我试图使用accepts\u嵌套的属性来创建一个复杂的表单。根据文档等,我建立了如下模型:

用户模型:

require 'digest'
class User < ActiveRecord::Base
  attr_accessor :password
  attr_accessible :first_name, :last_name, :email, :password, 
                  :password_confirmation, :ducks_attributes

  has_many :ducks, :class_name => 'Duck'
  accepts_nested_attributes_for :ducks
  .
  .
  .
end
需要“摘要”
类用户“鸭子”
接受以下对象的\u嵌套\u属性\u:ducks
.
.
.
结束
鸭子模型:

class Duck < ActiveRecord::Base
  belongs_to :user
  accepts_nested_attributes_for :user
end
classduck
但是当我尝试访问控制台中的嵌套属性时,我得到

ruby-1.9.2-p290 :003 > User.first.ducks_attributes
NoMethodError: undefined method `ducks_attributes' for #<User:0x007ffc63e996e0>
    from ~/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/activemodel-3.0.9/lib/active_model/attribute_methods.rb:392:in `method_missing'
    from ~/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/activerecord-3.0.9/lib/active_record/attribute_methods.rb:46:in `method_missing'
    from (irb):3
    from ~/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/railties-3.0.9/lib/rails/commands/console.rb:44:in `start'
    from ~/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/railties-3.0.9/lib/rails/commands/console.rb:8:in `start'
    from ~/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/railties-3.0.9/lib/rails/commands.rb:23:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'
ruby-1.9.2-p290:003>User.first.u属性
NoMethodError:未定义的方法“ducks\u attributes”#
来自~/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/activemodel-3.0.9/lib/active\u model/attribute\u methods.rb:392:in'method\u missing'
来自~/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/activerecord-3.0.9/lib/active\u record/attribute\u methods.rb:46:in'method\u missing'
来自(irb):3
来自~/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/railties-3.0.9/lib/rails/commands/console.rb:44:in'start'
来自~/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/railties-3.0.9/lib/rails/commands/console.rb:8:in'start'
来自~/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/railties-3.0.9/lib/rails/commands.rb:23:in`'
来自脚本/rails:6:in'require'
来自脚本/rails:6:in`'

我做错了什么?非常感谢。

仅定义了writer属性

class User < ActiveRecord::Base
  has_many :ducks
  accepts_nested_attributes_for :ducks
end

class Duck < ActiveRecord::Base
  belongs_to :user
end

# This works:
User.first.ducks_attributes = [ { :name => "Donald" } ]

# This is more common (attributes posted from a form):
User.create :ducks_attributes => [ { :name => "Donald" }, { :name => "Dewey" } ]
class用户“Donald”}]
#这更常见(从表单发布的属性):
User.create:ducks_attributes=>[{:name=>“Donald”},{:name=>“Dewey”}]