Rails 关于 super 在 ActiveRecord 中的使用

hxh1246996371 · September 23, 2015 · Last by gonglexin replied at September 25, 2015 · 2203 hits

我经常会在项目中遇到这种情况,如果某个字段为空则取一个固定的值:

然后我就有了下面的写法

class ApmSellMem < ActiveRecord::Base
  def avartar
      super || "'http://XXX/default.png'}"
  end
end

以上写法是能够正常工作的,但是貌似与 super 的意思不咋符合,有点歪打正着的感觉,请问这种写法没问题吗?还有更好的写法吗

def avatar
  read_attribute(:avatar) || "'http://XXX/default.png'}"
end

只有我觉得这里 super 用得没错么

@msg7086 是的,只有你 😄

"'http://XXX/default.png'}"不属于 Model,属于 View,因此,写到 helpers 里更合适,或者使用 decoretors,如draper.

#5 楼 @yanhao 涨姿势了 竟然还有 view model

self[:avatar] || "'http://XXX/default.png'}"
You need to Sign in before reply, if you don't have an account, please Sign up first.