Trilhos e validação de modelo
-
19-09-2019 - |
Pergunta
Quero colocar uma validação no nível do modelo na tabela a seguir:
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
Isso significa que meu modelo, que (até agora) se parece:
class Audio < ActiveRecord::Base
belongs_to :library
end
Tem
class Audio < ActiveRecord::Base
validates_presence_of :library
...
ou
class Audio < ActiveRecord::Base
validates_presence_of :library_id
...
?
Solução
Para validar a presença de uma associação, use seu nome, sem _id
anexado:
validates_presence_of :library
Vai validar duas coisas:
library_id
é presente- uma
Library
com o dadoid
existe
Usando validates_presence_of :library_id
só dará a você a primeira validação dos dois.
Além disso, a versão sem _id
também validará corretamente se ambos os registros forem novos (e, portanto, library_id
ainda não é definido).
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow