attr_accessor vs attr_reader

attr_reader: 实例变量只读
attr_writer: 实例变量可写
attr_accessor: 变量可读可写

attr_reader :approver
 
  def approver
  return nil if @approver.nil?
   u = User.find_by(User.user_conditions(@approver))
  end

  def approver=(user)
    u = User.find_by(User.user_conditions(user))
    throw "approver does not exist"  if u.nil?
    @approver = u
  end

如果不考虑(红色)逻辑处理,那么。
以上代码等同于:
attr_accessor :approver

你可能感兴趣的:(attr_accessor vs attr_reader)