Help us understand the problem. What is going on with this article?

rails4 でモデルの初期値を代入したい場合

More than 5 years have passed since last update.

default_scopeには、初期値を代入する機能がある。(これ自体でハマることもある気がする)

しかし、default_scopeでの条件は個別には外せないので、避けたほうが無難。(unscopedで外せるけれど、これは全ての条件を消しさるので、has_many 等を介して呼んだ場合の条件も消えてしまう)

よくある?Rails失敗談 default_scope編 | TechRacho
http://techracho.bpsinc.jp/tsunekawa/2013_10_10/13553

なので、下記のようにする

class Model < ActiveRecord::Base
  after_initialize :set_default_value

  private
  def set_default_value
    self.number  ||= 0.0
    self.bool_field = true if (self.has_attribute? :bool_value) && self.bool_field.nil?
  end
end

参考:
ruby on rails - How can I set default values in ActiveRecord? - Stack Overflow
http://stackoverflow.com/questions/328525/how-can-i-set-default-values-in-activerecord

追記:
あとからデフォルト値を追加するときは、新規に限ったほうがよい??

after_initialize :set_default_value, if: :new_record?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away