承認_resourcesとcancanの競合
-
25-09-2019 - |
質問
Entherited_ResourcesとRyan BatesのCancan Gemとの対立があります。
簡単なコントローラーがあります
class IssuesController < InheritedResources::Base
respond_to :html
load_and_authorize_resource
def tag
@issues = Issue.tagged_with(params[:tag]).recent.paginate(:page => params[:page])
end
protected
def collection
@issues = end_of_association_chain.recent.paginate(:page => params[:page], :per_page => Settings.per_page_defaults.issues)
end
end
とルート
resources :issues do
collection do
get "tag/:tag" => "issues#tag", :as => "tags"
end
end
すべてが正しいように見えますが、要求しようとします http:// localhost:8080/issues/tag/tag1分かりました
ActiveRecord::RecordNotFound in IssuesController#tag
Couldn't find Issue without an ID
コントローラーからload_and_authorize_resourceを削除した後 - すべてが正常に機能しますが、アクセス制御が必要です。
この問題を解決する方法はありますか?
解決
使用する load_and_authorize_resource :except => :tag
. 。これはルールを適用しないことに注意してください。使用する必要がある場合 authorize!
代わりは。
所属していません StackOverflow