[英]How do you organize javascript files in Rails 3?
我正在 Rails 3 中编写 web 应用程序,我使用 JQuery 作为我的 Javascript 框架。 我在应用程序中还没有大量的 javascript,但我开始在页面之间添加转换,我想知道是否有一种使用 [function].js.erb 文件来组织转换的好方法。 例如,我有一个邀请 controller 和一个新的并编辑 function。 有没有办法在文档准备好时使用 views/invitations/new.js.erb 和 views/invitations/edit.js.erb 运行 function? 现在我只是在 AJAX 调用之后使用这些来处理页面操作。
谢谢!
js.erb
文件仅用于您之前的使用:ajax 或 js 调用。
我不会推荐它:这应该仍然是客户端恕我直言。 此外,它将在 3.1 中从 Rails 中移开(仍保留为宝石)。
您应该简单地将您的 js 放入您在视图中加载的文件中:基本和整洁。
我同意 apneadiving.. 就个人而言,js.erb 调用增加了很多认知开销。 我所做的是将我的 javvavscripts 加载到部分布局中
*app/views/layouts/_javascripts.html.haml
= javascript_include_tag "https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"
= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js'
= javascript_include_tag "http://yui.yahooapis.com/3.3.0/build/yui/yui-min.js"
= include_javascripts :app
= hoptoad_javascript_notifier
= yield :javascripts
然后我使用Jammit gem 中的jammit
命令来缩小,并压缩我的 js 和 css 资产
配置/assets.yml
javascripts:
app:
- public/javascripts/rail.js
- public/javascripts/underscore-min.js
- public/javascripts/jquery.dump.js
- public/javascrippts/etc*.js
对于需要自定义页面级 js 的每个页面,我在页面底部添加了一个content_for:javascripts
块:
app/views/something/awesome.html.haml
%h1 cool page
Other cool stuff
- content_for :javascripts do
:javascript
$(document).ready(function(){
console.log('This document is REaDY!! and, this page rocks');
$.ajax({
url: "#{new_item_path(@item)}", //ruby is evaluated due to string interpolation
success: function(data) {
console.log('Loaded ' + data + ' from ' + #{new_item_path(@item)})
}
});
};
这让我可以在我的application.html.haml
底部render 'layouts/javascripts'
/javascript”。html.haml 布局,以及我所有的 javascript 都通过管道传输到页面底部,因此按照Yahoo 这里的建议加快页面加载速度 这也如果需要,让我使用 erb 从 Rails 生成页面级 js 的变量
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.