0
我是新来的铁轨,我使用设计认证。在路由级别设置权限?
我有一条路径叫做/users/5/events/1/add_images
,如果@user == current_user
,current_user只能访问到这个路由。设置此权限的最佳方式是什么?这应该在控制器级别上完成吗?
任何帮助,将不胜感激!谢谢!
我是新来的铁轨,我使用设计认证。在路由级别设置权限?
我有一条路径叫做/users/5/events/1/add_images
,如果@user == current_user
,current_user只能访问到这个路由。设置此权限的最佳方式是什么?这应该在控制器级别上完成吗?
任何帮助,将不胜感激!谢谢!
是的,它应该在控制器级别完成。
您可以使用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
这是一般的想法,读其余的文件。
特别是@user和current_user)不存在路由级别 –
谢谢,这解决了我的问题! – bjoern
是的,我意识到用户通过已经是current_user – bjoern