猿问

在Rails 3应用程序中添加特定于页面的JavaScript的最佳方法?

在Rails 3应用程序中添加特定于页面的JavaScript的最佳方法?

Rails 3有一些不引人注目的JavaScript,非常酷。

但我想知道最好的方法是为特定页面添加额外的JavaScript。

例如,我之前可能做过的事情:

<%= f.radio_button :rating, 'positive', :onclick => "$('some_div').show();" %>

我们现在可以用类似的东西使它不引人注目

<%= f.radio_button :rating, 'positive' %># then in some other file$('user_rating_positive').click(function() {
  $('some_div').show();}

所以我想我的问题是在哪里/如何包含JavaScript?我不想填写该application.js文件,因为此JavaScript仅适用于此视图。我应该以某种方式为每个页面包含一个自定义JavaScript文件,还是将其粘贴在标题所查找的实例变量中?


神不在的星期二
浏览 566回答 3
3回答

慕娘9325324

如果你想在一个页面上包含javascript,你当然可以在页面上包含它,但是如果你想对你的javascript进行分组并利用资产管道,缩小的js等,它可以这样做并且有额外的通过将js分成仅适用于站点的某些控制器/视图/部分的组,组合并仅加载到特定页面上的js资产。将资产中的js移动到文件夹中,每个文件夹都有一个单独的清单文件,因此,如果您有一个仅在后端使用的admin js库,则可以执行以下操作:资产管理admin.js(管理员组的清单)application.js(app全局组的清单)全球JS ...JS ...JavaScript的在现有的application.js中//=&nbsp;require&nbsp;jquery//=&nbsp;require&nbsp;jquery_ujs//=&nbsp;require_tree&nbsp;./global&nbsp;//&nbsp;requires&nbsp;all&nbsp;js&nbsp;files&nbsp;in&nbsp;global&nbsp;folder在新的admin.js清单文件中//=&nbsp;require_tree&nbsp;./admin&nbsp;//&nbsp;requires&nbsp;all&nbsp;js&nbsp;files&nbsp;in&nbsp;admin&nbsp;folder通过编辑config / production.rb确保加载了这个新的js清单config.assets.precompile&nbsp;+=&nbsp;%w(&nbsp;admin.js&nbsp;)然后调整页面布局,以便为页面头部添加一些额外的j:<%=&nbsp;content_for&nbsp;:header&nbsp;%>然后在想要包含此特定js组(以及普通应用程序组)和/或任何特定于页面的js,css等的视图中:<%&nbsp;content_for&nbsp;:header&nbsp;do&nbsp;%> &nbsp;&nbsp;<%=&nbsp;javascript_include_tag&nbsp;'admin'&nbsp;%>&nbsp;&nbsp;<%&nbsp;end&nbsp;%>您当然可以使用css执行相同的操作,并以类似的方式将其分组以仅应用于站点的某些区域。

ibeautiful

我更喜欢以下......在您的application_helper.rb文件中def&nbsp;include_javascript&nbsp;(file) &nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;=&nbsp;"&nbsp;<script&nbsp;type=\"text/javascript\">"&nbsp;+&nbsp;render(:file&nbsp;=>&nbsp;file)&nbsp;+&nbsp;"</script>" &nbsp;&nbsp;&nbsp;&nbsp;content_for(:head,&nbsp;raw(s))end然后在您的特定视图中(此示例中为app / views / books / index.html.erb)<%&nbsp;include_javascript&nbsp;'books/index.js'&nbsp;%>......似乎对我有用。
随时随地看视频慕课网APP

相关分类

JavaScript
Ruby
我要回答