Как я могу сгруппировать / повторно использовать именованные области в Rails? - PullRequest
0 голосов
/ 04 мая 2009

Как мне группировать именованные области? Например, у меня есть две модели, Пользователь и Активность. Пользователь может иметь много действий.

У действия есть две именованные области:

Activity.ordered_by_created_at
Activity.top_20

Я хочу создать новую именованную область действия Activity.recent, такую, что

Activity.recent == Activity.ordered_by_created_at.top_20

Таким образом, я могу позвонить недавно на user.activities.

user.activities.recent

Возможно ли это? Спасибо.

Ответы [ 2 ]

0 голосов
/ 07 мая 2009

Когда вы вызываете user.activities, предполагая, что в вашем файле user.rb есть отношение has_many: активность, ActiveRecord вернет массив всех действий пользователя.

Возможно, стоит подумать об изменении подхода в виде Activtiy.recent.user (UID) и просто записать named_scope в свой файл Activity.rb, который найдет связанных пользователей с действием.

0 голосов
/ 04 мая 2009

Вы, вероятно, можете сделать это:

class Activity < ActiveRecord::Base
  def self.recent
    ordered_by_created_at.top_20
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...