Rails 2 - named_scope:include,:连接和选择特定列

时间:2012-01-03 09:14:57

标签: mysql ruby-on-rails associations named-scope

我想知道是否可以使用:include在named_scope中,但只指定特定列:include?

目前我使用以下内容:

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

    def name
        produt.name
    end
end

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

1 个答案:

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