如何对命名范围进行分组?例如,我有两个模型,User和Activity。用户可以进行许多活动。
Activity有两个命名范围:
Activity.ordered_by_created_at
Activity.top_20
我想创建一个新的命名范围Activity.recent
,以便
Activity.recent == Activity.ordered_by_created_at.top_20
这样,我可以在user.activities
上调用最近的内容。
user.activities.recent
这可能吗?感谢。
答案 0 :(得分:0)
您可以这样做:
class Activity < ActiveRecord::Base
def self.recent
ordered_by_created_at.top_20
end
end
答案 1 :(得分:0)
当您调用user.activities时,假设您的user.rb文件中有has_many:activities关系,ActiveRecord将返回所有用户活动的数组。
可能要考虑将方法更改为Activtiy.recent.user(UID),并在activity.rb文件中编写一个named_scope,以查找具有该活动的关联用户。