我有一个Rails 3应用程序,我试图用我的数据库中的每个Nation(少于300个国家)填充javascript变量作为JSON对象。这是我nations.js.erb
文件中的相关行:
_this.nations = <%= Nation.all.to_json :only => [:id], :methods => :text %>;
当我在浏览器中调用我的js文件时/assets/users.js
需要民族文件,_this.nations
变量完全填充。当我尝试进行预编译时,我得到以下内容:
$> rake assets:precompile
$> rake aborted!
uninitialized constant Nation (in nations.js.erb)
所以我的问题是:是否可以在Nation
文件中引用js.erb
模型或任何模型进行预编译?我也尝试使用我的NationsHelper
,但我的错误只是改为未初始化的常量NationsHelper。
我对RoR很新,所以如果需要我没有提供相关信息,请直接询问。
答案 0 :(得分:7)
如果某个地方config.assets.initialize_on_precompile
设置为false
,请尝试启用
config.assets.initialize_on_precompile = true
答案 1 :(得分:0)
为什么不在控制器中进行呼叫
控制器
@nations = Nation.all
nations.js.erb
_this.nations = <%= @nations.all.to_json :only => [:id], :methods => :text %>;