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.

¿Fue útil?

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
scroll top