encaminhamento URLs e caminhos em carris
-
22-07-2019 - |
Pergunta
Eu tenho um controlador que tem um método chamado de histórico
class UsersController < ApplicationController
def history
User.return_history(params[:id])
end
end
Eu tenho o seguinte no meu arquivo routes.rb
map.resources :users, :shallow => true do |user|
user.resources :friends, :shallow => false
user.resources :posts, :collection=>{:no_access => :get}
user.resources :photos
end
Como faço para tentar Ajax chamar o método história do users_controller.rb
? Usando link_to_remote
da seguinte maneira
link_to_remote 'History', :url=>history_user_path(@user), :update=>"history", :method=>'get'
atira-me um erro dizendo history_user_path()
não encontrado. Como isso pode ser? mostra edit_user_path()
nenhum erro e editar nem sequer é explicitamente definido no arquivo User.rb. Obrigado.
Solução
mapResources: usuários cria um monte de métodos auxiliares url / caminho, incluindo edit_users_path. Se você precisar de outros. você tem que adicioná-lo como qualquer um: membro, ou: opção de coleta para map.resources.
Isso permitirá que você faça o que quiser:
map.resources :users, :shallow => true, :member => {:history => :get} do |user|
user.resources :friends, :shallow => false
user.resources :posts, :collection=>{:no_access => :get}
user.resources :photos
end
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow