предположим, что мы настроены следующим образом:
class Post < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :posts
end
предположим, что у пользователя есть логический атрибут 'admin', который указывает, является ли он глобальным администратором или нет.
Я хочунаписать метод (или область действия?) для класса User, который называется 'visible_posts'.Если пользователь не является администратором, он должен возвращать только свои собственные сообщения.Если он является администратором, метод должен вернуть все сообщения в системе.
Моя первая попытка была примерно такой:
class User < ActiveRecord::Base
[...]
def visible_posts
if admin?
Post.all
else
posts
end
end
end
Проблема здесь в том, что Post.all возвращает массив, но яскорее хотел бы иметь ActiveRecord :: Relation, как я получаю из постов, чтобы работать с ним позже.
Возможно ли как-нибудь получить ActiveRecord :: Relation, который представляет ВСЕ посты?