0

我的问题是我尝试调用与表的关联。我获得了 ID 号,但想从中获得不同的字段。这个问题什么时候会出现模型

class Category < ActiveRecord::Base
 has_many :suppliers

end class Supplier < ActiveRecord::Base belongs_to :categories end

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
4

2 回答 2

1

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

class Supplier < ActiveRecord::Base
  #not
  #belongs_to :categories
  belongs_to :category
end
于 2012-05-15T07:09:24.150 回答
0

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

完成后,将模型更改为

class Supplier < ActiveRecord::Base
  belongs_to :categories
end

一切都将开始工作。

如果英语不是您的第一语言,这可能并不明显,但 Rails 会尝试坚持英语语言约定。因此,由于供应商只属于一个类别,因此在谈论关系时使用单数形式。

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

于 2012-05-15T07:21:28.530 回答