Rails - решение для ACL на уровне записей - PullRequest
0 голосов
/ 14 сентября 2011

Я нахожу много плагинов, которые реализуют контроль доступа на уровне методов контроллера, но у меня есть особая ситуация:

например, у нас есть PostsController # index

def index
  @posts = Posts.all
end

я хочуполучить записи с областью действия -> where(:user_id => current_user.id).Это просто, но я хочу сделать это на уровне acl.Конечно, области действия и условия могут быть гораздо более сложными, например -> «извлекать только сообщения, опубликованные в определенной стране» и т. Д.

1 Ответ

2 голосов
/ 14 сентября 2011

Самый простой подход - решить эту проблему с помощью ассоциаций, а не дополнительных плагинов.

 current_user.posts.all

 country = Country.find(...)
 country.posts.all

 ...

Идеальный баланс читабельности, производительности и гибкости.

...