6

我有一个 Rails 3 应用程序,我试图用我的数据库中的每个国家(少于 300 个国家)作为 JSON 对象填充一个 javascript 变量。这是我nations.js.erb文件中的相关行:

_this.nations = <%= Nation.all.to_json :only => [:id], :methods => :text %>;

/assets/users.js当我在需要国家文件的浏览器中调用我的 js 文件时,该_this.nations变量被完美填充。当我尝试进行预编译时,我得到以下信息:

$> rake assets:precompile
$> rake aborted!
uninitialized constant Nation (in nations.js.erb)

所以我的问题是:是否可以Nation从文件中引用模型或任何模型js.erb进行预编译?我也尝试使用我的NationsHelper,但我的错误只是更改为未初始化的常量 NationsHelper。

我对 RoR 还很陌生,所以如果需要我没有提供的相关信息,请询问。

4

2 回答 2

7

如果您已config.assets.initialize_on_precompile设置到false某个地方,请尝试启用它

config.assets.initialize_on_precompile = true
于 2012-10-15T18:03:46.260 回答
0

为什么不在控制器中拨打电话

控制器

@nations = Nation.all

国家.js.erb

_this.nations = <%= @nations.all.to_json :only => [:id], :methods => :text %>;
于 2012-10-15T18:38:39.490 回答