0

与inherited_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 后 - 一切正常,但我需要访问控制。

知道如何解决这个问题吗?

4

1 回答 1

1

使用load_and_authorize_resource :except => :tag. 请注意,这不会应用规则。如果您需要应用一些用途authorize!

于 2010-10-24T19:52:13.433 回答