0

产品.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

像这样在您的价值模型上创建一个方法。

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

如果您的问题是您想在一个数据库调用中完成所有这些操作,那么您正在查看以下内容:

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

老实说,我认为通过 id 搜索不值得。如果您要进行返回许多结果的查询,我会急切地加载相关产品并按照我上面的建议进行操作。

于 2013-03-28T15:20:17.873 回答