如何在rjs中使用条件?

时间:2011-09-28 05:01:27

标签: ruby-on-rails ajax rjs

我使用名为var的url传递参数,其中包含值'event'。我想在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

2 个答案:

答案 0 :(得分:4)

你可以使用

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

答案 1 :(得分:0)

我认为你必须使用像这样的ruby语法:

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

或所有在ruby

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

<% end %>