所以我实际上已经完成了关联has_many,belongs_to我不知道为什么会出现这个错误。
Restoraan.rb
class Restoraan < ActiveRecord::Base
has_many :kichens
has_many :atmospheres
has_many :resto_imgs
accepts_nested_attributes_for :resto_imgs, :kichens, :atmospheres
#serialize :resto_type, :restoKitchen
end
Kichen.rb
class Kichen < ActiveRecord::Base
belongs_to :restoraan, dependent: :destroy
end
当我在rails c中执行Restoraan.kichen时出现错误
NoMethodError:未定义的方法`kichen'代表#&lt; 类:0x005648039a9038&GT;
答案 0 :(得分:1)
首先,您需要一个Restoraan
的实例。因此,您需要创建一个或拉出现有的一个,例如Restoraan.first.kichens
(假设数据库中存在Restorran对象)。
注意复数,因为您已将其定义为has_many
关联。此外,您必须在Restoraan
。
对于视图,您的@kichens
实例变量将包含ActiveRecord::Associations::CollectionProxy
,其行为与数组非常相似。然后,您可以在视图中对此进行迭代,以显示Kichen
对象的任何属性。
<% @kichens.each do |kichen| %>
<p><%= kichen.some_kichen_property %></p>
<p><%= kichen.some_kichen_property %></p>
<% end %>