我是rails的新手,我正在使用设计进行身份验证。
我有一个名为/users/5/events/1/add_images
的路由,current_user只有@user == current_user
才能访问该路由。设置此权限的最佳方法是什么?这应该在控制器级别完成吗?
任何帮助将不胜感激!谢谢!
答案 0 :(得分:3)
是的,它应该在控制器级别完成。
您可以使用cancan
gem来处理授权。
https://github.com/ryanb/cancan
http://railscasts.com/episodes/192-authorization-with-cancan
粗略地说,你必须定义能力:
can :add_images, Event do |event|
event.user.id == user.id
end
在events_controller中,添加before_filter
before_filter :find_event # set @event
before_filter :authorize_add_images, only: :add_images
def authorize_add_images
authorize! :add_images, @event
end
这是一般性的想法,请阅读其余的文档。