2012-01-03 43 views
0

我想知道是否可以使用include:在named_scope中,但仅指定特定列:include?Rails 2 - named_scope:include,:连接并选择特定列

目前我使用以下命令:

class ProductOverwrite < ActiveRecord::Base 
    belongs_to :product 
    named_scope :with_name, :include => :product 

    def name 
     produt.name 
    end 
end 

但我想知道如果我可以从产品表,而不是选择整组,我显然不需要列中选择特定的列。

回答

0

这不是开箱即用的东西。

你可以“捎带”属性

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有没有产品,那么你需要一个左连接,而不是默认的内连接。