Ruby on rails RubyonRails:自定义getter或自定义helper

Ruby on rails RubyonRails:自定义getter或自定义helper,ruby-on-rails,ruby-on-rails-3,model,Ruby On Rails,Ruby On Rails 3,Model,如果有人没有添加照片,我想显示默认的化身图像。我假设我需要在模型中执行自定义getter或助手 如果我做了getter,它会像这样: def avatar_url "default_url" unless self.avatar end 使用read\u属性方法检测是否存在 def avatar read_attribute("avatar") || default_avatar end 另一种可能的解决方案是使用迁移在数据库级别设置默认值。这样你就不必为默认情况做任何特殊的事情 迁

如果有人没有添加照片,我想显示默认的化身图像。我假设我需要在模型中执行自定义getter或助手

如果我做了getter,它会像这样:

def avatar_url
  "default_url" unless self.avatar
end

使用
read\u属性
方法检测是否存在

def avatar
  read_attribute("avatar") || default_avatar
end

另一种可能的解决方案是使用迁移在数据库级别设置默认值。这样你就不必为默认情况做任何特殊的事情

迁移可能类似于:

change_table :users do |t|
  t.string :avatar, :default => 'default_url'
end

From:

关于这一点的问题,avatar是数据库中的实际值,我打算向avatar_url的模型添加一个附加属性,该属性返回默认值(如果有),否则返回字符串值,这就是avatar方法的作用。它拦截对属性的调用并返回数据库值(如果不是nil),否则返回
default\u avatar
。是否使用carrierwave gem?