質問

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! 代わりは。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top