i ont une application RoR Log, qui similaire à l'application du magasin de livres, mon logs_controller a toute action par défaut: index, exposition, mise à jour, créer, supprimer ..rubis sur des rails en ajoutant nouvelle route
maintenant je dois ajouter une nouvelle action: ToCSV, je l'ai définie dans logs_controller, et ajouter de nouveaux parcours dans la config/routes comme:
map.resources :logs, :collection => { :toCSV => :get }.
de RIR, j'ai vérifié les routes et voir les nouvelles routes déjà ajouté:
>> rs = ActionController::Routing::Routes >> puts rs.routes GET /logs/toCSV(.:format)? {:controller=>"logs", :action=>"toCSV"}
a ensuite couru la commande 'rake routes' dans shell, il est revenu:
toCSV_logs GET /logs/toCSV(.:format) {:controller=>"logs", :action=>"toCSV"}
tout semble fonctionner. enfin dans mon code de vues, j'ajouté ce qui suit:
link_to 'Export to CSV', toCSV_logs_path
lorsque l'accès dans la Brower 'http://localhost:3000/logs/toCSV', il se plaignait: Impossible trouver Connectez-vous avec ID = ToCSV
j'ai vérifié dans le script/serveur, et a vu celui-ci:
ActiveRecord::RecordNotFound (Couldn't find Log with ID=toCSV): app/controllers/logs_controller.rb:290:in `show'
semble quand je clique sur ce lien, le diriger à l'action « show » au lieu de « ToCSV », donc il a fallu « ToCSV » comme id ... quelqu'un sait pourquoi cela arriverait-il? et pour le réparer? Merci ...
quelle est la version de rails? Et montrez votre méthode toCSV dans le contrôleur – fl00r
Vous avez probablement quelque chose comme ceci log GET /logs/:id(.:format) {: controller => "logs,: action",: action => "show"} – jigfox