Pode diferença entre: read e [: index,: show]?
De acordo com toda a documentação, o:read
ação é alias para ambos:index
e:show
:
alias_action :index, show, :to => :read
No entanto, considere o seguinte cenário com recursos aninhados:
resources :posts
resources :comments
end
Se eu definir habilidades como esta:
# ability.rb
can :read, Post
can :show, Comment
# comments_controller.rb
load_and_authorize_resource :organization, :find_by => :permalink
load_and_authorize_resource :membership, :through => :organization
coisas funcionam como esperado. No entanto, se eu alterar o:read
ação para [: index,: show]:
# ability.rb
can [:index, :show], Post
can :show, Comment
# comments_controller.rb
load_and_authorize_resource :organization, :find_by => :permalink
load_and_authorize_resource :membership, :through => :organization
Não estou autorizado a acessar/posts/:post_id/comments
, /posts/:post_id/comments/:id
, etc. Ainda assim, eu posso acessar ambos:index
e:show
para oposts_controller
.
Como é possível que essas ações sejam "alias" se elas se comportam de maneira diferent
Na minha brincadeira, eu também me deparei com o seguinte. Alterandoload_and_authorize_resource
para o seguinte acesso permitido:
# ability.rb
can [:index, :show], Post
can :show, Comment
# comments_controller.rb
load__resource :organization, :find_by => :permalink
load_and_authorize_resource :membership, :through => :organization
lguém pode explicar o que está acontecendo aqu