A Tip of Ruby Initialize Method

在遇到很多变量在 initialize 方法中一次性设置的时候,可以用下面的方法

class Template
  STRING_ATTRIBUTES = %i(title text logo logo_url).freeze
  BOOLEAN_ATTRIBUTES = %i(is_ring is_vibrate is_clearable).freeze

  attr_accessor *STRING_ATTRIBUTES, *BOOLEAN_ATTRIBUTES

  def initialize
    super

    STRING_ATTRIBUTES.each { |attr| instance_variable_set("@#{attr}", '') }
    BOOLEAN_ATTRIBUTES.each { |attr| instance_variable_set("@#{attr}", true) }
  end
end

如果觉得我的文章对您有用,请在支付宝公益平台找个项目捐点钱。 @Victor Sep 12, 2014

奉献爱心