product.rb
class Product
attr_accessible :name
has_many :values
end
value.rb
class Value
attr_accessible :value
belongs_to :product
end
如何在值实例(v = Value.find(3)
)中包含产品名称?
输出值实例必须如下所示:[v.product_name = product.name, v.name]
答案 0 :(得分:1)
在您的Value模型上创建一个方法,如下所示。
def product_name
"#{product.name}, #{name}"
end
答案 1 :(得分:1)
v.product.name
会告诉您产品的名称。将其封装在Value方法中以便更好地练习:
class Value
def product_name
product.name
end
end
如果您的问题是您希望在一次数据库调用中完成所有操作,那么您会看到以下内容:
Value.select("values.*, products.name as product_name").joins(:product).find(3)
老实说,我不认为通过id进行搜索是值得的。如果您正在进行返回许多结果的查询,我会急切地加载相关产品并按照我上面的建议进行操作。