在我的角色模型中,我添加了:
character.rb
before_save do self.profile_picture_url = asset_path('icon.png') end
但是,对于数据库中已存在的所有字符,其profile_picture_url为零.因此,我想进入控制台并遍历所有这些并设置它.在控制台我试过:
Character.find_each do |c| c.profile_picture_url = asset_path('icon.png') end
但是这给出了错误:
NoMethodError: undefined method `asset_path' for main:Object
我希望我已经充分地传达了我想要实现的目标.我哪里错了?
解决方法
查看
AssetHelper的文档:
This module provides methods for generating asset paths and urls.
您可以通过以下几种方式访问控制台中的asset_path:
ActionController::Base.helpers.asset_path('icon.png')
要么
include ActionView::Helpers::AssetUrlHelper asset_path('icon.png')
另外在旁注和问题分开的情况下,如果你要更新你的所有角色,我会使用update_all作为你的profile_picture_url属性.
Character.all.update_all(profile_picture_url: asset_path('icon.png')