Ho un modello simile alla seguente,Rails convalida presenza non sul valore 0
class Activity < ActiveRecord::Base
attr_accessible :name, :admin
validates :name, :presence => true
validates :admin, :presence => true
end
La proprietà name è una stringa e la proprietà di amministrazione è definita come un valore booleano nella migrazione.
Se provo a creare un'istanza del modello nella console utilizzando,
a = Activity.create(:name => 'Test', :admin => 0)
Poi la convalida non riesce dicendo che ho bisogno di fornire un valore per Admin. Perché? Ho fornito un valore.
Ho potuto capire se non ero riuscito a fornire un valore o se avessi fornito nulla. Ma perché un valore come 0 (o anche falso per quella materia) causa il fallimento della convalida?
ha senso per me immagino . Ma immagino di non essere ancora d'accordo su false.blank? o 0. bianco? dovrebbe restituire true – richard
Abbastanza giusto, ma dovrai prenderlo con i ragazzi che hanno scritto Rails :) – zetetic
+1. La soluzione funziona. Ma vorrei anche che Rails lo gestisse meglio. Il messaggio di errore quando si utilizza la soluzione qui è ': upgradeed_kitchen_bathrooms => [" non è incluso nell'elenco "]" che è orribile considerando la semplicità di ciò che cerchiamo. –