未初始化的常量供应商::类别

时间:2012-05-15 06:54:07

标签: ruby-on-rails ruby project

我的问题是我尝试调用表的关联。我得到了身份证号码,但希望得到一个不同的字段。什么时候会出现问题 模型

class Category < ActiveRecord::Base
 has_many :suppliers

端    类供应商&lt;的ActiveRecord :: Base的        belongs_to:类别    端

class Supplier < ActiveRecord::Base
  belongs_to :categories
 end

控制器

def index
 @suppliers = Supplier.all
end
View :
 <% @suppliers.each do |s|%> 
                <td><%= s.name %></td>
                <td><%= s.inspect %></td>
                <% s.categories.each do |c|%> 
                    <td><%= c.inspect %></td>
                    <%end%>
                <% end %>


errormesseage : uninitialized constant Supplier::Categories

2 个答案:

答案 0 :(得分:1)

如果您的供应商表中有category_id列,那么您应该声明belongs_to关联,如下所示。

class Supplier < ActiveRecord::Base
  #not
  #belongs_to :categories
  belongs_to :category
end

答案 1 :(得分:0)

您的供应商型号应该有一个category_id字段(单数),一个categories_id字段(复数)。

完成后,将模型更改为

class Supplier < ActiveRecord::Base
  belongs_to :categories
end

一切都会开始发挥作用。

如果英语不是你的第一语言,那可能并不明显,但Rails试图坚持英语语言惯例。因此,由于供应商仅属于单一类别,因此在谈论关系时使用单数形式。

这个逻辑意味着您的类是[单个] Supplier,但数据库表包含suppliers