我正在编写一个Rails 3.2.1应用程序,我想要一些javascript代码,我想用于单个动作视图。它只是调用一个jquery插件并开始倒计时,但我想用咖啡脚本编写它,我觉得资产管道是正确的工具来做到这一点。
另外,我需要访问控制器传递的变量,例如@question
。 我该怎么做?我查看了coffeebeans
gem,但这只适用于:remote=>true
表单和链接。
答案 0 :(得分:1)
您的问题可以通过不同方式解决。
向我们的应用程序助手添加以下方法:
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
- 文件中的帮助方法:
<%= include_related_asset(params[:controller].to_param + '_' + params[:action].to_param . 'js') %>
为您的控制器操作创建特定资产。 E. g。 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。