在Rails控制台中使用asset_path

时间:2017-07-21 00:57:49

标签: ruby-on-rails ruby rails-console

在我的Character模型中,我添加了:

character.rb

before_save do
  self.profile_picture_url = asset_path('icon.png')
end

但是,对于数据库中已存在的所有字符,其profile_picture_urlnil。因此,我想进入控制台并遍历所有这些并设置它。在控制台中我尝试了:

Character.find_each do |c|
  c.profile_picture_url = asset_path('icon.png')
end

但这会产生错误:

NoMethodError: undefined method `asset_path' for main:Object

我希望我已经充分地传达了我想要实现的目标。我哪里错了?

2 个答案:

答案 0 :(得分:5)

查看AssetHelper的文档:

  

此模块提供了生成资产路径和网址的方法。

您可以通过以下几种方式访问​​控制台中的asset_path

ActionController::Base.helpers.asset_path('icon.png')

include ActionView::Helpers::AssetUrlHelper
asset_path('icon.png')

另外在旁注上并与问题分开,如果您正在更新所有Character,我会profile_picture_url用于Character.all.update_all(profile_picture_url: asset_path('icon.png') 属性。

{{1}}

答案 1 :(得分:1)

如果您尝试拨打asset_path,而不是帮助者或观点,请调用

ActionController::Base.helpers.asset_path("icon.png")