Rails et modèle de validation
-
19-09-2019 - |
Question
Je veux mettre une validation au niveau du modèle sur le tableau suivant:
create_table :audios do |t|
t.integer :library_id, :null => false
t.string :file, :null => false, :limit => 2048
t.string :name, :limit => 512
t.timestamps
end
Est-ce que cela veut dire, que mon modèle, qui (à ce jour) ressemble à:
class Audio < ActiveRecord::Base
belongs_to :library
end
A
class Audio < ActiveRecord::Base
validates_presence_of :library
...
ou
class Audio < ActiveRecord::Base
validates_presence_of :library_id
...
La solution
Pour valider la présence d'une association, utiliser son nom, sans _id
en annexe:
validates_presence_of :library
Il validera deux choses:
-
library_id
est présent - un
Library
avec leid
donné existe
En utilisant validates_presence_of :library_id
ne vous donnera la première validation des deux.
En plus de cela, la version sans _id
validera également correctement si les deux dossiers sont nouveaux (et donc library_id
est encore unset).
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow