I would like to call partials on some standard operations. I am using this method for calling the partial:
%li= link_to 'Delete Event', 'javascript:void(0);', :class => 'alert tiny button', :data => {'reveal-id' => :RevealDelete}
= render 'layouts/reveal_delete', :item => event_display(@event.event), :resource => @event
Then in my partial,
#RevealDelete.reveal-modal
%a.close-reveal-modal ×
%h3= "Delete #{item}"
%p Are you sure you want to delete this?
=link_to "Delete #{item}", resource, :method => :delete, :remote => :true, :confirm => resource, :class => 'button close-reveal-modal'
%a.button.alert.close-reveal-modal Cancel
How can I have this has as something like:
link_to 'Delete', '#', :partial => 'layouts/delete', :remote => :true?
so that I only render that partial when clicked and not when the page loads?
You can do that with javascript like:
The action in your corresponding controller then will be this:
My Controller:
Then you can create the
delete_content.js.erb
inside your correct directory of the link and there you put the following code:delete_content.js.erb
Then in your view:
delete_content.html.erb
Don't forget to put your partial _my_partial.html.erb in the same folder.
on the view do this:
on your controller
and add a view to the confirm_deletion action in js
that would make an ajax request to load that custom confirmation dialog, maybe you want to add some wrapper to insert the dialog instead of using body.append
To add to the accepted answer, I only got it to work after changing the js portion to the following:
Without the
escape_javascript
it was just rendering the partial in the background and not updating the view.