Reputation: 307
Not able to delete the data stored in the database pls help?
this is my sages_controller.rb
def delete
@sage = Sage.find(params[:id])
end
def destroy
Sage.find(params[:id]).destroy
redirect_to '/thanksss'
end
this is my delete.html.erb
<%= form_for @sage do |f| %>
<%= f.label :Name %>
<%= f.text_field :Name %>
<br/>
<%= f.label :Email %>
<%= f.text_field :Email %>
<br/>
<%= f.label :Address %>
<%= f.text_field :Address %>
<br/>
<%= f.label :Number %>
<%= f.text_field :Number %>
<br/>
<%= f.submit 'Delete' %>
<% end %>
this is my routes.rb
get 'sages/delete/:id'=> 'sages#delete'
delete 'sages/delete/:id'=> 'sages#destroy'
Upvotes: 0
Views: 60
Reputation: 1705
You can do something like this, Change your button to link,
<%= link_to "delete", @sage, :method=>:delete %>
And change your routes file to,
resources :sages,only: [:new,:create,:edit, :update, :delete]
get 'sages/delete/:id'=> 'sages#delete'
Change your delete method like,
def delete
@sage = Sage.find(params[:id])
destroy
end
Upvotes: 0
Reputation: 8065
You don't have to create form for this. button_to
should work
<%= button_to "delete", @sage, :method => :delete, :class => :destroy %>
this will internally generate a form
with DELETE
method, opposed to default GET
method like below,
<%= form_for @sage, :method => :delete do %>
Upvotes: 1