我被这个堆叠了好几天,尝试了一切。
我正在尝试做一个简单的有很多关联,但它拒绝工作:
我需要的是每个球体都有一个与之关联的 orb_type。
我生成脚手架:
rails generate scaffold orb_type nome
rails generate scaffold orb nome:string descr:text orb_type_id:integer
制作 rake db:migrate,
更改模型:
class Orb < ActiveRecord::Base
has_many :orb_types
validates_associated :orb_types
attr_accessible :descr, :nome, :orb_type_id
validates :nome, uniqueness: true, presence: true
end
class OrbType < ActiveRecord::Base
attr_accessible :nome
validates :nome, uniqueness: true, presence: true
belongs_to :orb
end
然后试图让它工作:
$ rails c
1.9.3-p448 :001 > tipo = OrbType.new nome: "Planeta"
1.9.3-p448 :002 > tipo.save
1.9.3-p448 :003 > tipo = OrbType.find(1)
1.9.3-p448 :004 > planeta = Orb.new nome:"Testname", descr: "TestDescr"
1.9.3-p448 :005 > planeta.orb_type = tipo
在最后一行我得到错误:
NoMethodError: undefined method `each' for #<OrbType:0x00000003dc02a0>
这是怎么回事?下划线和rails“约定”让我头疼。
我看到了很多其他类似的主题,但他们的解决方案都没有奏效!