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