4
我正在编写一个Rails 3.2.1应用程序,我有一些JavaScript代码,我想为单个操作视图放置。它只是调用一个jquery插件并开始倒计时,但我想用咖啡脚本编写它,我觉得资产管道是做这件事的正确工具。如何添加特定于操作的资产管道项目?
另外我需要访问控制器传递的变量,如@question
。 我该怎么做?我已查看coffeebeans
宝石,但只适用于:remote=>true
表单和链接。
我正在编写一个Rails 3.2.1应用程序,我有一些JavaScript代码,我想为单个操作视图放置。它只是调用一个jquery插件并开始倒计时,但我想用咖啡脚本编写它,我觉得资产管道是做这件事的正确工具。如何添加特定于操作的资产管道项目?
另外我需要访问控制器传递的变量,如@question
。 我该怎么做?我已查看coffeebeans
宝石,但只适用于:remote=>true
表单和链接。
您的问题可以通过不同的方式解决。
添加到我们的应用助手下面的方法:
module ApplicationHelper
def include_related_asset(asset)
# v-----{Change this}
if !YourApp::Application.assets.find_asset(asset).nil?
case asset.split('.')[-1]
when 'js'
javascript_include_tag asset
when 'css'
stylesheet_link_tag asset
end
end
end
end
调用辅助方法,在你的layout
-file:
<%= include_related_asset(params[:controller].to_param + '_' + params[:action].to_param . 'js') %>
为您的控件创建特定的资产勒勒行动。例如, controller_action.js
yield
<%= yield :head%>
到您的布局头包括你的资产从行动的观点:
<% content_for :head do %>
<%= javascript_include_tag 'controller_action' %>
<% end %>
请参阅Rails guides获取更多信息。
要控制数据传递到您的JavaScript,你可以这样做:
<%= javascript_tag do %>
window.error_message = '<%= j error_message %>';
<% end %>
请参阅RailCast Episode #324了解更多信息。
看看这个:http://stackoverflow.com/questions/8566129/how-to-namespace-our-js-for-use-with-the-rails-asset-pipeline/8568208#8568208 – 2012-02-06 14:23:50
关于访问对可变部分,有一个railscast。 [将数据传递给Javascript](http://railscasts.com/episodes/324-passing-data-to-javascript)。 =) – 2012-02-20 10:31:36