0

私の問題は、テーブルへの関連付けを呼び出そうとすることです。ID番号を取得しましたが、別のフィールドを取得したいと思います。この問題はいつモデルになりますか

class Category < ActiveRecord::Base
 has_many :suppliers

エンドクラスSupplier<ActiveRecord:: Basebelongs_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 に答える