enrutamiento de urls y caminos en rieles
-
22-07-2019 - |
Pregunta
Tengo un controlador que tiene un método llamado historial
class UsersController < ApplicationController
def history
User.return_history(params[:id])
end
end
Tengo lo siguiente en mi archivo 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
¿Cómo intento llamar a Ajax al método de historial de users_controller.rb
? Usando link_to_remote
de la siguiente manera
link_to_remote 'History', :url=>history_user_path(@user), :update=>"history", :method=>'get'
me arroja un error diciendo history_user_path ()
no encontrado. ¿Cómo puede ser esto? edit_user_path ()
no muestra ningún error y la edición ni siquiera está definida explícitamente en el archivo User.rb. Gracias.
Solución
mapresources: los usuarios crean un montón de métodos auxiliares de url / ruta, incluyendo edit_users_path. Si necesitas a otros. debes agregarlo como una opción: miembro o: colección para map.resources.
Esto te permitirá hacer lo que quieras:
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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow