Я пытаюсь перенести свое приложение с Rails 3.0.7 на Rails 3.1.3. У меня есть модель клиента
class Client::Client < ActiveRecord::Base
has_one :contact_address, :class_name => "Address", :foreign_key => :client_id, :conditions => ["kind = ? and state = ?", 2, 1]
end
В методе редактирования контроллера я выполняю этот код:
def edit
@client = params[:type].classify.constantize.find params[:id]
@client.contact_address = Address.new(:kind => 2) if @client.contact_address.blank?
end
Во второй строке этого кода я получаю сообщение об ошибке:
Failed to save the new associated contact_address.
Так что кажется, что присвоение @ client.contact_address каким-то образом вызвало метод сохранения объекта contact_address ... Я не хочу этого ... Это какое-то новое поведение Rails 3.1.x? Я хочу, чтобы связанные объекты сохранялись только при вызове .save! на родительской модели - это слишком много волшебства для меня. Можно ли где-нибудь отключить это поведение?