Rails Upgrade 3.2 до 4.0: предупреждение об устаревании модели - PullRequest
0 голосов
/ 27 ноября 2018

В Rails 3.2 у меня есть пользовательская Модель следующим образом ->

User model

has_many :billing_invoices, :through => :user_purchases, :select => "DISTINCT billing_invoices.invoice_date,billing_invoices.account_number"

Я пытаюсь перейти на Rails 4.0, и вместо этого я получаю предупреждение об устаревании, чтобы использовать блок области действия.Как я могу переписать этот оператор has_many для работы в 4.0?

1 Ответ

0 голосов
/ 27 ноября 2018

Я считаю, что это то, что вам нужно:

has_many :billing_invoices, -> { distinct }, through: :user_purchases

См. https://guides.rubyonrails.org/association_basics.html#scopes-for-has-many-distinct

Обновлено:

Если вы хотите переопределить SELECT, тогда:

has_many :billing_invoices, -> { select("DISTINCT billing_invoices.invoice_date,billing_invoices.account_number") }, :through => :user_purchases

См .: https://guides.rubyonrails.org/association_basics.html#scopes-for-has-many-select

...