2 votes

Valeurs par défaut des attributs de modèle dans Rails

Quelle est la bonne façon de définir des valeurs par défaut pour les modèles dans Rails ?

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

Je veux que les points commencent à 0 au lieu de nil . Idéalement, la valeur par défaut est créée tout de suite plutôt que d'attendre que l'option User à sauvegarder dans la base de données. Mais je suppose que l'utilisation d'un before_save ou les contraintes de base de données fonctionnent également :

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

  private
  def set_defaults
    self.points = 0
  end
end

Utilisation de la dernière version stable de Rails.

8voto

m_x Points 5733

Le définir dans votre migration :

 t.integer :points, default: 0

0voto

Manish Nagdewani Points 405

Vous pouvez définir la valeur par défaut en migration ou en utilisant le modèle setter méthodes.

change_column :user, :points, :integer, :default => 0

Ou,

def points
    @points ||= 0
end

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X