Rails 2 - named_scope: include,: присоединяется и выбирает определенные столбцы - PullRequest
0 голосов
/ 03 января 2012

Мне было интересно, можно ли использовать: включить в named_scope, но указать только определенные столбцы для: include?

В настоящее время я использую следующее:

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

    def name
        produt.name
    end
end

Но яинтересно, могу ли я выбрать конкретные столбцы из таблицы продуктов вместо выбора всего набора столбцов, который мне явно не нужен.

1 Ответ

0 голосов
/ 03 января 2012

Это не то, что рельсы делают из коробки.

Вы можете «добавить обратно» атрибут

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 возможно отсутствие продукта, вам потребуется левое соединение, а не внутреннее соединение по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...