哪个地方最好把我的JavaScript放在ROR中

时间:2013-03-27 09:13:17

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

我的应用程序结构如下所示

myapp
  app/assets/javascripts/admin/admin.js
  app/controllers/admin/admin_controller.rb
  app/views/admin/new.html.haml
  app/views/admin/new.js.haml

我正在使用一些ajax函数来渲染表单中的特定内容。 new.js.haml中指定的操作,当呼叫采用js格式时触发。我的admin.js文件中还有一些其他脚本,在此ajax调用之后不包括这些脚本。当我将脚本复制并粘贴到new.js.haml中时,一切正常。但我不希望在我的应用程序中有冗余脚本。如何重新考虑这一因素?

1 个答案:

答案 0 :(得分:1)

你是对的,因为复制代码不是一个好主意。至于你在哪里放置javascript文件的问题,它并不重要(尽管通常情况下,由于超出问题范围的原因,它们位于app/assets/javascripts)。

重要的是,您实际上已经定义了从new.js.haml调用的javascript函数,这意味着必须加载javascript文件。这可以通过在您的布局中包含javascript文件来完成,如下所示:

<%= javascript_include_tag "admin/admin" %>

在主javascript文件中定义函数:

// admin.js

var testFunc = function() {
  console.log('this is a test!')
};

然后调用new.js文件中的函数:

// new.js

testFunc();

无需重新定义您的函数或变量。