0

我是 Rails 新手,我正在使用设计进行身份验证。

我有一个名为/users/5/events/1/add_imagescurrent_user 只有在@user == current_user. 设置此权限的最佳方法是什么?这应该在控制器级别完成吗?

任何帮助,将不胜感激!谢谢!

4

1 回答 1

3

是的,它应该在控制器级别完成。

您可以使用cancangem 来处理授权。

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

这是一般的想法,其余的阅读文档。

于 2013-01-13T21:38:39.440 回答