我发现在不使用 RJS 或 ERB 的情况下将 javascript 放在单独的文件中的方法是在 javascript_include_tag 帮助程序中使用实例变量。
<%= javascript_include_tag @extra_head_content if !@extra_head_content.nil? %>
然后我将当前 javascript 文件的名称放在 Controller 的实例变量中;
def index
@extra_head_content = "test"
#...
end
然后在我的 javascript 文件 (test.js) 中添加一些代码。
$j(function() {
alert("test");
})
有没有“更好”的方法来做到这一点?我缺少任何约定吗?
我找到了很多关于 UJS 到 XHR(AJAX) 的信息,但是没有关于像“unobtrusive (document).ready”这样简单的事情的约定
我正在使用 rails 3-0-9。
最佳答案
我做这样的事情:
在 ApplicationHelper 中:
def javascript(file)
content_for(:javascript_at_head){ javascript_include_tag file }
end
在 layouts/application.html.erb
<%= yield(:javascript_at_head) %>
在另一个模板中:
<% javascript :test %>
关于javascript - 有没有更好的方法在 Ruby on Rails 上执行 Unobtrusive JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7374039/