Rails 覆盖 activerecord 模型 getter 以便更轻松地查询与该模型的关联

Rails override activerecord model getter to necessitate easier querying of associations to that model

有没有办法覆盖 ActiveRecord 模型 getter 以便它们 return 成为关系字段?例如,我目前正在尝试根据它所属的 :user 对具有 belongs_to 关系的 :meetings table 进行排序。如果我想按 :users.first_name 排序,我必须在参数中传递某种标识符,让后台知道它需要按 :users table 排序。我的解决方案有效,但它需要在控制器中对一些组合进行硬编码,这些组合不是很干,而且对我来说有点太具体了。只是想对此进行优化。

您可以尝试使用 ActiveRecord 的 scope

class Meeting
  belongs_to :user

  scope :sorted_by_users_first_name, -> { joins(:user).order('user.first_name')) }
end

然后 Meeting.sorted_by_users_first_name 应该 return 会议按用户的 first_name 升序排列。

希望对您有所帮助。谢谢