0

我有以下关系

class User
  has_many :relationships
  has_many :friends, :through => :relationships, -> select: 'friends.*,    relationships.weight', order: 'weight DESC'

当我升级到 Rails 4 时,我收到以下警告:

DEPRECATION WARNING: The following options in your Service.has_many :friends declaration are deprecated: :order,:select.

我应该如何解决这个问题?一般来说,Rails 4 是否有正在进行的参考?

4

1 回答 1

2

User.where(...)在 Rails 4 中,您在普通样式查询中看到的任何选项现在都将包含在 lambda 中。这包括:order:select

has_many :friends, -> { select("friends.*, relationships.weight").order("weight desc") }, :through => :relationships

请注意, Proc 确实需要成为 的第二个参数has_many,因此该:through =>部分需要保留在末尾。

于 2013-06-26T01:26:32.673 回答