0

product.rb

class Product
 attr_accessible :name
 has_many :values
end

値.rb

class Value
 attr_accessible :value
 belongs_to :product
end

値インスタンス ( v = Value.find(3)) に製品名をどのように含めますか? 出力値インスタンスは次のようにする必要があります。[v.product_name = product.name, v.name]

4

2 に答える 2

1

このように Value モデルにメソッドを作成します。

def product_name
  "#{product.name}, #{name}"
end
于 2013-03-28T15:19:36.317 に答える
1
v.product.name

商品名が出てきます。より良い実践のために、値のメソッドでそれをカプセル化します。

class Value
  def product_name
    product.name
  end
end

問題が 1 回のデータベース呼び出しですべてを実行したい場合は、次のようになります。

Value.select("values.*, products.name as product_name").joins(:product).find(3)

正直なところ、IDで検索する価値はないと思います。多くの結果を返すクエリを作成している場合は、関連する製品を熱心に読み込み、上記で提案した方法に従います。

于 2013-03-28T15:20:17.873 に答える