6

以下の MVC 構造を考えると、どのようにアクセスできます:categoryか? のリストに追加しattr_accessibleてサーバーを再起動しましたが、呼び出しp.categoryても何も返されません。Rails のエキスパートなら、何が起こっているかを知っているはずです。前もって感謝します!

モデル

class Product < ActiveRecord::Base
  belongs_to :category
  belongs_to :frame
  belongs_to :style
  belongs_to :lenses
  attr_accessible :description, :price
end

意見

<% @product.each do |p| %>
<%= p.category %>
<% end %>

コントローラ

def sunglass
  @product = Product.all
end
4

2 に答える 2

6

categories表示するテーブルの列を指定する必要があります。たとえば、次のような列nameです。

<% @product.each do |p| %>
 <%= p.category.name %>
<% end %>

それ以外の場合は、オブジェクトを返します...つまり、すべての列{id: 1, name: 'blabla', etc }

また、

class Category < ActiveRecord::Base
   has_many :products
end
于 2012-11-21T14:17:37.247 に答える
2

この定義:

belongs_to :category

製品モデルのすべてのオブジェクトに対して、テーブル カテゴリへの参照ポイントを定義するだけです。あなたのカテゴリーモデルの例には、名前、タイプなどの列があります...

1 つの製品は 1 つのカテゴリに属し、カテゴリには多くの製品があります。では、どのようにして商品のカテゴリ名を見つけますか? 次のように書くことはできません。

product.category # this is just reference to Category table

次のように書く必要があります。

product.category.name # this will get category's name which product belongs to

カテゴリの種類を取得したい場合(例):

product.category.type 
于 2012-11-21T14:34:55.233 に答える