routage des urls et des chemins dans les rails
-
22-07-2019 - |
Question
J'ai un contrôleur qui a une méthode appelée history
class UsersController < ApplicationController
def history
User.return_history(params[:id])
end
end
J'ai les éléments suivants dans mon fichier 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
Comment puis-je essayer d'appeler Ajax avec la méthode d'historique du users_controller.rb
? Utilisation de link_to_remote
de la manière suivante
link_to_remote 'History', :url=>history_user_path(@user), :update=>"history", :method=>'get'
renvoie une erreur en disant que chemin_utilisateur_historique ()
est introuvable. Comment se peut-il? edit_user_path ()
n'affiche aucune erreur et edit n'est même pas explicitement défini dans le fichier User.rb. Merci.
La solution
mapresources: les utilisateurs créent un ensemble de méthodes d'assistance url / path, y compris edit_users_path. Si tu as besoin des autres. vous devez l'ajouter en tant qu'option: membre ou option de collection pour map.resources.
Cela vous permettra de faire ce que vous voulez:
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