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