Rosh
Rosh

Reputation: 731

Add a modal dialog into Rails?

I want to add a Ajax link into my application. When I click on the link it should pop up a modal dialog which contains event's details.. I add this link in my helper class.

 link_to(event.name, events_path(@event), :remote => true 

Then I create js file to insert content into hidden div.

$('.modal').html(<%= escape_javascript(render(@event)) %>); 
$('.modal').dialog(); 

In here modal is my hidden div. But it could not pop up any modal dialog. I cannot understand what is the error and why is it not working. Plz can anybody help me to correct this?

Upvotes: 3

Views: 3559

Answers (2)

chourobin
chourobin

Reputation: 4114

Could be possible that you didnt install Jquery since the rails default is Prototype library. I would upgrade to Rails 3.1 which makes it easy to use jquery:

rails new example -j jquery

or install jquery: http://railscasts.com/episodes/136-jquery

Upvotes: 0

Kristian PD
Kristian PD

Reputation: 2695

Change

$('.modal').html(<%= escape_javascript(render(@event)) %>);

to

$('.modal').html("<%= escape_javascript(render(@event)) %>");

From a JS point of view, your code will be invalid because you're not wrapping your render in quotes and it will try to evaluate your HTML.

EDIT

If you're trying to link to this on a show click, you'll need to use show.js.erb to show your modal dialog rather than create.js.erb. create will only be called if you POST a form to /events whereas here it looks like you're trying to show just the details of the event.

Put the code above (with quotes) in the show.js.erb, make sure you have a respond.js response in your show method on the controller, and try it again.

Upvotes: 2

Related Questions