Rails de supprimer la méthode ne fonctionne pas
Eh bien, je vais avoir un problème avec la méthode delete en Ruby on Rails, je pense, j'ai essayé tout ce que j'ai lu, mais il ne fonctionne pas, peut-être que vous gusy peut aider à corriger l'écart.
Quand je clique sur le lien de redirection pour les patients/1?confirm=Sont de+vous+assurez-vous%3F&mode=supprimer
Mais également un reçu un message de ma console chromée Uncaught SyntaxError: Unexpected token = :3000/actifs/de l'application.js?corps=1:13 qui appartiennent à
= besoin de jquery
Mon code est le suivant:
patients.contrôleur de
def show
@patient = Patient.find(params[:id])
end
def new
@patient = Patient.new
@patients = Patient.find(:all)
end
def create
@patient = Patient.new(params[:patient])
if @patient.save
redirect_to new_patient_path
end
end
def edit
@patient = Patient.find(params[:id])
end
def update
@patient = Patient.find(params[:id])
if @patient.update_attributes(params[:patient])
redirect_to :action => 'show', :id => @patient
else
@patient = patient.find(:all)
render :action => 'edit'
end
end
def destroy
@patient = Patient.find(params[:id])
@patient.destroy
redirect_to '/patients/new', :notice => "Your patient has been deleted"
end
spectacle.html.erb
<h2>Patient Information</h2>
<%= @patient.firstname %><br />
<%= @patient.lastname %><br />
<%= @patient.phone %><br />
<p> <%= link_to "Edit", edit_patient_path %> | <%= link_to "Delete", :confirm => "Are you sure?", :method => :delete %> </p>
application js
= require jquery
= require jquery_ujs
= require turbolinks
= require_tree .
application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>Registration Patient System</title>
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
<body>
<%= yield %>
</body>
</html>
routes
resources :patients
match 'patients/:id' => 'patients#show', via: [:get, :post]
resources :users
match '/register', to: 'users#new', via: [:get, :post]
resources :pages
resources :sessions, :only => [:new, :create, :destroy]
match '/login', to: 'sessions#new', via: [:get, :post]
match '/logout', to: 'sessions#destroy', via: [:get, :post]
# The priority is based upon order of creation: first created -> highest priority.
# See how all your routes lay out with "rake routes".
# You can have the root of your site routed with "root"
root 'sessions#new'
Ligne De Commande
Commencé à OBTENIR "/patients/1?confirm=Sont de+vous+assurez-vous%3F&mode=delete" pour
127.0.0.1 à 2014-02-12 18:14:18 -0300 Traitement par PatientsController#montrent que les Paramètres HTML: {"confirmer"=>"Êtes-vous
sûr?", la "méthode"=>"supprimer", "id"=>"1"} [1m[36mPatient Charge (1,0 ms)[0m
[1mSELECT "patients".* DE "patients", OÙ les "patients"."id" = ? LIMITE
1[0 [["id", "1"]] Rendu patients/montrer.html.erb dans
layouts/application (1,0 ms) Rempli de 200 OK dans 13ms (Vues: 9.0 ms |
ActiveRecord: 1.0 ms)
Merci pour votre aide!
- "ça ne fonctionne pas" dans quel sens?
- Je suis en cliquant sur le lien, il ne fait rien
- Peut-être que cela peut vous aider. stackoverflow.com/questions/963420/undo-scaffolding-in-rails/...
- Il est presque impossible pour elle de ne pas faire n'importe quoi. De dépannage. Est le navigateur qui fait une demande? Ce qui est dans la demande/sur le fil? Ce qui vient dans le contrôleur? Etc.
- Oh oui, je clique sur le lien et j'ai reçu l'url localhost:3000/patients/... mais il ne supprime pas mon patient
- Ce que j'ai dans ma ligne de commande est: Commencé à OBTENIR "/patients/1?confirm=Sont de+vous+assurez-vous%3F&mode=delete" pour 127.0.0.1 à 2014-02-12 18:14:18 -0300 Traitement par PatientsController#montrent que les Paramètres HTML: {"confirmer"=>"Êtes-vous sûr?", la "méthode"=>"supprimer", "id"=>"1"} [1m[36mPatient Charge (1,0 ms)[0m [1mSELECT "patients".* DE "patients", OÙ les "patients"."id" = ? LIMITE de 1[0 [["id", "1"]] Rendu patients/montrer.html.erb dans les mises en page/application (1,0 ms) Rempli de 200 OK dans 13ms (Vues: 9.0 ms | ActiveRecord: 1.0 ms)
Vous devez vous connecter pour publier un commentaire.
mise à jour
application.js devrait être
PAS
Peut-être vous rencontrez une erreur de validation. Mise à jour de la suppression de la méthode à utiliser le bang après la destruction de sorte qu'il montre la sortie. Cela devrait au moins vous aider à déboguer votre situation actuelle. Sinon, fournir plus de détails et je peux mettre à jour la réponse.
dans
<%= link_to "Delete", :confirm => "Are you sure?", :method => :delete %>
il vous manque de l'
path
partie<%= link_to "Delete", destroy_patient_path, :confirm => "Are you sure?", :method => :delete %>
Vous devez ajouter l'objet que vous souhaitez supprimer:
match 'patients/:id' => 'patients#show', via: [:get, :post]
Vous avez besoin dans votre point de vue... il y a différentes façons de passer la variable
Ensuite dans vos itinéraires.rb
Le problème est que vous n'avez pas défini de la route et vous n'êtes pas fournir le chemin d'accès pour appeler