有没有办法在Rails 4中的Coffeescript / Javascript中使用ActionView Helpers?

时间:2014-03-24 21:05:50

标签: javascript ruby-on-rails coffeescript

例如,如果我想在kites.js.coffee中执行某些操作:

  = select_tag :kite, options_for_select([["kite1","1"],["kite2","2"]], selected: nil), {class: 'form-control', name: "kite[tail]"}

其中KITE_OPTIONS = [[“kite1”,“1”],[“kite2”,“2”]等等。

重点是不必手动编写如下的javascript代码:

js_variable = "<select>....<option>kite1</option></select>";

1 个答案:

答案 0 :(得分:0)

如果在CofeeScript模板中包含ruby代码,则不应该这样做,那么通过在每个请求上编译CofeeScript都会产生性能开销。这就是为什么你没有简单的方法将红宝石代码包含在coffeescript中,这是为了避免这样的事情。

您可以从视图中提供javascript变量,然后在coffeeescript模板中使用它们:

javascript:
  var options_for_select = '#{options_for_select([["kite1","1"],["kite2","2"]]}';
coffee:
  $(document).ready ->
    alert(options_for_select);