rails association proxy错误

时间:2016-07-03 12:09:14

标签: ruby-on-rails rails-activerecord

This error keeps displaying

所以我实际上已经完成了关联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;

1 个答案:

答案 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 %>