Rails 4.0删除了ActionController :: Base.asset_path选项。使用资产管道功能。
我目前正在从Rails 3.2升级到Rails 4.1。在我的应用程序中,我使用select2-rails gem,在我的js中,我为选择菜单选项添加了一个图像:
//mycode.js.erb
function format(image) {
var image_path = "<%= asset_path('" + image.id.toLowerCase() +"') %>"
return "<img class='flag' src='" + image_path + "' />";
}
以上工作在我的Rails 3.2应用程序中,但我似乎已经打破它升级到4.1,现在收到以下错误:
Sprockets::FileNotFound - couldn't find file '" + image.id.toLowerCase() +"'
在Rails 4.1中,asset_path帮助程序是否仍然可用?如果是的话,任何关于我可能出错的想法?
更新
上面的代码在我的.js.erb文件中,它允许我在我的js文件中包含Ruby代码。这在我的Rails 3.2项目中目前运行良好。我正在这样做,因为select2允许我们按照以下示例格式化我们的选择菜单项的显示:
//sample.js
function format(state) {
if (!state.id) return state.text; // optgroup
return "<img class='flag' src='images/flags/" + state.id.toLowerCase() + ".png'/>" + state.text;
}
我的理解是,使用资产管道路径是正确的,而不是手动添加类似资产/图像/图标/小&#39;