Ed_*_*Ed_ 1 javascript ruby-on-rails asset-pipeline
我是一个完整的菜鸟,我试图了解如何在Rails中使用javascript和资产管道.例如,我在哪里放一个简单的$(document).ready来在特定视图中执行.我已经完成了将代码放在视图中,但我认为这不是最好的方法.补充阅读也将不胜感激,谢谢.
创建一个名为whatever_you_want.jsI 的新文件,通常根据视图或模型拆分它们.它最终并不重要,因为资产管道将它全部归结为一个大文件.拆分文件符合您的偏好和喜好.
所以,whatever.js你可以编写你想要的任何JS代码$(document).ready,没有..资产管道并不真正关心..如果你编写的代码需要$(document).ready,请使用它.如果没有,不要......
一旦你完成了你的JS,Rails默认会把你在application.js清单文件中告诉它的所有js文件放到一个文件中,按你写的顺序
所以它看起来像
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require_tree .
Run Code Online (Sandbox Code Playgroud)
所以它首先加载jquery,然后是jquery ujs,然后是bootstrap,然后是tree,这是application.js所在的当前目录
同样你只能这样做
//= require whatever.js
Run Code Online (Sandbox Code Playgroud)
在开发时,默认情况下,您不会看到一个大文件,而是所有文件,因为它更容易以这种方式调试.
一旦部署到生产环境,根据您的需要,您可以通过资产管道预编译所有资产,rake assets:precompile或者您可能有一个脚本可以在部署时自动预编译,如asset_syncgem
基本上,你应该把自链轮在查看文件js文件和HTML代码的js代码不处理JS是不是资产的文件/文件进行预编译(即压缩js和东西宝石)
一些补充读物让你高兴
http://guides.rubyonrails.org/asset_pipeline.html
http://railscasts.com/episodes/279-understanding-the-asset-pipeline
http://blog.55minutes.com/2012/02/untangling-the-rails-asset-pipeline-part-3-configuration/
希望能在某种程度上帮助你
在再次阅读你的问题之后,我意识到你所问的是"在哪里放置与特定视图相关的js代码"
那么,现在您熟悉资产管道,现在您可以了解如何使用它:
在你的whatever.js文件,你写你想写..让我们假定你没有任何//=require_tree .的application.js,所以它不包括所有的JS文件,你必须whatever.js在whatever.html.erb
在whatever.html.erb你可以写
<% content_for :head do %>
<%= javascript_include_tag "whatever.js" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
然后,在你的布局文件中(某个文件里面有<%= yield%>,转到html的头部然后写
<%= yield :head %>
Run Code Online (Sandbox Code Playgroud)
名称头基本上是你想要的.
这告诉Rails像"Hey man, this whatever.js file is for you.. just put it in the :head ok?"和Rails一样"You got it mister!"
这样,您可以在任何视图中包含所需的任何js文件.
但是,既然你说你是一个完整的noob,我会建议保持简单,并且包括在第一次去的所有js文件,只是使用唯一的类和ID为您的HTML元素,你应该罚款.最有可能的是,有些人可能不同意这一点.但既然你说你是一个完整的菜鸟,那说出来或者他们说的并不重要.无论你更容易理解的是什么.所以试试吧
| 归档时间: |
|
| 查看次数: |
1877 次 |
| 最近记录: |