herdado_resources e conflito de cancan
-
25-09-2019 - |
Pergunta
Há conflitos com herded_resources e a jóia Cancan de Ryan Bates.
Eu tenho algum controlador simples
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
e rota
resources :issues do
collection do
get "tag/:tag" => "issues#tag", :as => "tags"
end
end
Tudo parece correto, mas na tentativa de solicitar http: // localhost: 8080/questões/tag/tag1Eu vejo
ActiveRecord::RecordNotFound in IssuesController#tag
Couldn't find Issue without an ID
Depois de remover o load_and_authorize_resource do controlador - tudo funciona bem, mas preciso de controle de acesso.
Alguma idéia de como resolver esse problema?
Solução
usar load_and_authorize_resource :except => :tag
. Observe que isso não aplica regras. Se você precisar aplicar algum uso authorize!
em vez de.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow