在 user.rb 模型default_url
设置为:
default_url: lambda { |avatar| avatar.instance.set_default_url}
def set_default_url
ActionController::Base.helpers.image_path('male_user.png')
end
def avatar_urls
return nil if self.avatar.blank?
{
original: self.avatar.url,
medium: self.avatar.url(:medium),
small: self.avatar.url(:small),
thumbnail: self.avatar.url(:thumbnail),
}
end
图片路径为:app/assets/images
如果我在控制台中运行相同的操作,我会得到:
2.4.0 :030 > ActionController::Base.helpers.image_path('male_user.png')
=> "/assets/male_user-dcd9e7de8ab7ccce17ef1322923cd4c46fcf5c7b3350f460b4fc403777c5685a.png"
如果我没有上传任何图片,我会将null
作为默认网址。
这里有什么不对?我错过了什么吗?