2011-09-28 44 views
3

我使用名爲var的url來傳遞參數,它包含值'event'。我想在rjs文件中檢查這個變量並加載一個模態對話框。以下是我的代碼。如何在rjs中使用條件?

page<<" if (:var== "event") {" 
page<< "$j ('#create_evnt_dialog').dialog({ 
    title: 'New Trainer', 
    modal: true, 
    width: 500, 
    close: function(event, ui) { $j ('#create_evnt_dialog').dialog('destroy') } 

});" 
page << '}else{' 
page.replace_html 'create_evnt', :partial => 'add_events' 
page << "}" 

我無法檢查rjs文件中的變量事件。我可以這樣做嗎?

這是我的Ajax鏈接::

<%= link_to_remote 'Add new event', :url => {:controller => 'events', :action => 'new' }, :with=>"'var=' + escape('event')" %> 

<%= link_to_remote 'Add new holidays', :url => {:controller => 'events', :action => 'new' }, :with=>"'var=' + escape('holy')" %> 

這是我的控制器代碼::

def new 
@event = Event.new 
@trainers= Trainer.all 
@countries= Country.all 
@venues= Venue.all 

@var=params[:var] 

if(@var == 'holy') 
    @event.trainer_id='0'#If we save holiday as event we put 0 to trainer and venue 
    @event.venue_id='0' 
end 
end 
+0

你能張貼控制器動作也? – Bohdan

回答

4

就可以使用

if params[:template] == "viewer" 
     render :action => "viewer_destroy.js.rjs" 
    else 
     render :action => "destroy.js.rjs" 
    end 
0

我認爲你必須使用Ruby的語法如下:

if (<%= :var %> == "event") { 

或全部在紅寶石

<% if :var == "event" %> 

<% end %>