Rieles y validación del modelo
-
19-09-2019 - |
Pregunta
Quiero poner un poco de validación a nivel de modelo en la siguiente tabla:
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
¿Quiere decir esto, que mi modelo, que (hasta ahora) se ve así:
class Audio < ActiveRecord::Base
belongs_to :library
end
Tiene
class Audio < ActiveRecord::Base
validates_presence_of :library
...
o
class Audio < ActiveRecord::Base
validates_presence_of :library_id
...
Solución
Para validar la presencia de una asociación, utilizar su nombre, sin _id
anexa:
validates_presence_of :library
Se validará dos cosas:
-
library_id
está presente - existe un
Library
con elid
dado
El uso de validates_presence_of :library_id
sólo le dará la primera validación de los dos.
Además de esto, la versión sin _id
también valida correctamente si ambos registros son nuevos (y por lo tanto library_id
es todavía desconectado).
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow