我想知道是否可以使用:include在named_scope中,但只指定特定列:include? p>
目前我使用以下内容:
class ProductOverwrite < ActiveRecord::Base
belongs_to :product
named_scope :with_name, :include => :product
def name
produt.name
end
end
但我想知道我是否可以从产品表中选择特定列,而不是选择我显然不需要的整个列。
答案 0 :(得分:0)
这不是rails开箱即用的东西。
你可以'捎带'属性
named_scope :with_product_name, :joins => :product, :select => 'product_overwrites.*, products.name as piggy_backed_name'
def product_name
read_attribute(:piggy_backed_name) || product.name
end
如果ProductOverwrite
可能没有产品,那么您需要一个左连接而不是默认的内连接。