mi succede una cosa strana con questo validation helper
la situazione è molto semplice… due modelli
class Team < ActiveRecord::Base
validates_presence_of :name
validates_associated :players
has_many :players, :dependent => :delete_all
end
class Player < ActiveRecord::Base
validates_presence_of :name
belongs_to :team
end
cosi facendo evito di salvare squadre con giocatori non validi…
ora però ecco un test in console
t = Team.new
=> #<Team:0xb741f598 @attributes={“name”=>nil}, @new_record=true>
t.players << Player.new
=> [#<Player:0xb73d60c8 @attributes={“team_id”=>nil, “name”=>nil},
@new_record=true>]
t.save
=> false
t.errors.length
=> 3
t.errors.each { |att, mex| puts att + “—>” + mex }
name—>can’t be blank
players—>is invalid
players—>is invalid
=> {“name”=>[“can’t be blank”], “players”=>[“is invalid”, “is invalid”]}
come è facilmente scrutabile, gli errori che mi da sono 3, di cui due su
players…
ora mi chiedo… MA PERCHE??
se provo a mettere dentro players due giocatori “fake”, gli errori
diventano
4
cè un motivo in tutto questo?? (nelle api di rails non cè scritto nulla in
proposito
http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#M000948
)
–
everything has got to end sometime we were satellites drifting off into
space
vega 4 - burn and fade away