在条件.js.erb文件中使用控制器集变量

时间:2012-07-10 18:36:26

标签: javascript ruby-on-rails ruby-on-rails-3

我有一个控制器,其中有一个远程命中的动作,然后运行我的controller_action.js.erb文件。

在我的控制器操作中,我设置了一个变量@successful = true|false(基于函数的返回值,为true | false)。

在我的javascript文件中,我想说if @successful并提醒操作成功或警告它不是。

知道怎么做吗?

2 个答案:

答案 0 :(得分:2)

试试这个

<%- if @successful %>
   alert('Blabla');
<%- else %>
   alert('Blabal');
<%- end %>

答案 1 :(得分:1)

我通常会说HAML,所以这可能不完全正确:

if(<%= @successful %>) {
  // do stuff
} else {
  // do other stuff
}

在HAML中,它将是:

:javascript
  if(#{@successful}) {
    // do stuff
  } else {
    // do other stuff
  }

或者,你可以这样做:

(ERB)

<%- if @successful %>
  // JS code if true
<%- else %>
  // JS code if false
<%- end %>

(HAML)

- if @successful
  :javascript
    // JS code if true
- else
  :javascript
    // JS code if false

第一个选项将始终在客户端呈现所有JS代码,唯一的区别是truefalse子句中的if或{{1}}。

第二个选项将有条件地仅为真假案例呈现JS代码。