我已经使用简单的home.html.erb
标记将jQuery放在script
文件的底部,测试了我的Rails应用程序的功能。一切正常,直到我尝试在Rails 3.1中使用Asset Pipleine并将脚本放在app/javascripts/home.js.erb
任何人都知道为什么我无法让javascript在home.html.erb文件之外工作
答案 0 :(得分:0)
你可以在application.html.erb中添加脚本标签,你的所有页面都会有jquery。 你可以用这种方式添加脚本:(你应该在文件夹app / javascript中添加jquery-1.7.min文件)
<%= javascript_include_tag 'jquery-1.7.min'%>
答案 1 :(得分:0)
请勿在 app / javascripts 中添加 home.js.erb ,但要从 home.js.erb 中提取您的jquery并将其放入应用/资产/ Javascript角/ home.js 强>
将 config.assets.precompile + =%w(* .js)添加到 config / environments / production.rb 或 config / application.rb 用于全局环境(test / dev / prod)
比 app / assets / javascripts / application.js
//= require jquery
//= require jquery_ujs
//= require_self
//= require_tree .
从视图中 javascript_include_tag“应用程序”调用
...最后,不要忘记将 gem'jquery-rails'添加到 Gemfile 并运行捆绑
答案 2 :(得分:0)
就我想做的事情而言,这是针对不同视图的单独的javascript文件,我没有成功。我尝试了不同的命名约定等。
然而,对我有用的是将我的所有javascript放在application.js
中。这样做可以使整个应用程序中的每个视图都可以访问此代码。根据您的需求和您的应用程序,您可能希望将脚本放在[your-model-name].js.coffee
中,这样可以访问它(我认为只适用于您的特定控制器和视图)。由于我的应用程序是单个模型/控制器设置,这基本上是相同的。
然后,这是一个小心使用选择器的问题,因为不会无意中干扰其他页面。换句话说,如果您希望一段代码在一个特定视图中而不是另一个视图中运行,则必须相应地调整.js代码,因为application.js
中的所有视图都可以访问。