我是 Rails 新手,我正在使用设计进行身份验证。
我有一个名为/users/5/events/1/add_images
current_user 只有在@user == current_user
. 设置此权限的最佳方法是什么?这应该在控制器级别完成吗?
任何帮助,将不胜感激!谢谢!
我是 Rails 新手,我正在使用设计进行身份验证。
我有一个名为/users/5/events/1/add_images
current_user 只有在@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
这是一般的想法,其余的阅读文档。