Rails升级3.2到4.0:模型弃用警告

时间:2018-11-26 22:41:50

标签: ruby-on-rails ruby-on-rails-4 ruby-on-rails-3.2 rails-3-upgrade

在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 :(得分:2)

我认为这是您需要的:

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