Старый код, работающий в Rails 3.0:
belongs_to :primary_stream
before_save :autocreate_primary_stream, :if=>lambda {|a| a.primary_stream.nil?}
def autocreate_primary_stream
self.create_primary_stream()
end
В Rails 3.1:
self.primary_stream
заполнено, а self.primary_stream_id
равно нулю. Когда запись сохранена, primary_stream_id сохраняется как ноль в базе данных.
Я должен был сделать это, чтобы получить поведение, которое я ожидал:
belongs_to :primary_stream
before_save :autocreate_primary_stream, :if=>lambda {|a| a.primary_stream.nil?}
def autocreate_primary_stream
self.create_primary_stream()
self.primary_stream_id = primary_stream.id
end
Что-то изменилось или я сделал что-то очень глупое?