如何使控制器/视图特定的Javascript在Rails 3.1生产环境中工作

时间:2012-01-13 05:12:14

标签: javascript ruby-on-rails-3.1

我正在尝试在Rails 3.1中创建视图/控制器特定的Javascript。我已经按照Rails 3.1 asset pipeline: how to load controller-specific scripts?http://tech.thereq.com/post/10754558724/the-rails-3-1-asset-pipeline-in-the-real-world-jquery的方法进行了操作。

这在我的开发环境中非常有用。但是,它在我的生产环境中失败了。我收到消息,ActionView :: Template :: Error(users.js未预编译)。

我在... / app / assets / javascript目录中的user.js.coffee文件包含

//= require i18n/grid.locale-en
//= require jquery.jqGrid.min    
//
//= require grid_object.js

我的index.html.haml文件在... / app / views / users中包含

- javascript 'users'
...

我的application_helper包含

def javascript(*files)
  content_for(:head) { javascript_include_tag(*files) }
end

我的应用程序布局文件包含

%= yield(:head) %>

最后,我的application.js文件在... / app / assets / javascript中包含

//= require jquery
//= require jquery-ui

我错过了什么?

1 个答案:

答案 0 :(得分:1)

我决定对我需要预编译的所有控制器/视图特定的javascript使用后缀(即' _pc')。所需的更改是:

在我看来,我用过:

- javascript require 'users_pc'

我将users.js.coffee文件重命名为users_pc.js.coffee

最后,我更新了我的... / config / environments / production.rb文件以包含

- config.assets.precompile << '*_pc.js'