如何在js.erb文件中使用require.js

时间:2014-11-20 16:23:03

标签: ruby ruby-on-rails-3

我正在使用Rails 3.2.16和require.js('requirejs-rails'gem)。

我的应用有一个名为ExpensesUI的模块(以下是它的片段):

$(function() {
  define('ExpensesUI', ['OperationsUI'], function(operationsUI) {
    var expenses = {
        operationConsolidatedCheckbox: "#operation_consolidated",
        parcelledNoCheckbox: "#operation_parcelled_no",
        parcelledYesCheckbox: "#operation_parcelled_yes",

        /* more things */
    };
  }
});

我可以在任何.js文件中完美地使用它:

require(['ExpensesUI'], function(expensesUI) { console.log(expensesUI.parcelledNoCheckbox); });

但是当我在.js.erb中尝试相同的需要调用时,我记录了'未定义'。

1 个答案:

答案 0 :(得分:0)

无法将requirejs与* .js.erb文件一起使用。只是因为requirejs从sprockets获取文件。 但相反,您可以在* .html.erb视图中使用named modules,例如:

<script>
  define('mymodule', function() {
    'use strict';
    return {
      user: <%= @user.to_json.html_safe %>
    };
  });
</script>