instradamento di URL e percorsi in rotaie
-
22-07-2019 - |
Domanda
Ho un controller che ha un metodo chiamato history
class UsersController < ApplicationController
def history
User.return_history(params[:id])
end
end
Ho il seguente nel mio file route.rb
map.resources :users, :shallow => true do |user|
user.resources :friends, :shallow => false
user.resources :posts, :collection=>{:no_access => :get}
user.resources :photos
end
Come posso provare ad Ajax a chiamare il metodo della cronologia di users_controller.rb
? Utilizzando link_to_remote
nel modo seguente
link_to_remote 'History', :url=>history_user_path(@user), :update=>"history", :method=>'get'
mi genera un errore che dice history_user_path ()
non trovato. Come può essere? edit_user_path ()
non mostra alcun errore e la modifica non è nemmeno esplicitamente definita nel file User.rb. Grazie.
Soluzione
mapresources: gli utenti creano un sacco di metodi di aiuto url / path, incluso edit_users_path. Se hai bisogno di altri. devi aggiungerlo come opzione: member o: collection per map.resources.
Questo ti permetterà di fare quello che vuoi:
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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow