2

Railsでモデルのデフォルト値を設定する適切な方法は何ですか?

class User < ActiveRecord::Base
  attr_accessible :name, :points
end

ポイントを ではなく 0 から開始したいnilUser理想的には、デフォルト値がデータベースに保存されるのを待つのではなく、すぐに作成されます。before_saveしかし、またはデータベース制約の使用も同様に機能すると思います。

class User < ActiveRecord::Base
  attr_accessible :name, :points
  before_save :set_defaults

  private
  def set_defaults
    self.points = 0
  end
end

最新の安定した Rails を使用します。

4

2 に答える 2

8

移行で設定します。

 t.integer :points, default: 0
于 2012-11-28T13:06:39.707 に答える