Uygulamamı Rails 3.0.7'den Rails 3.1.3'e taşımaya çalışıyorum. Bu yüzden görünüyorActiveRecord dernekleri, Rails sürümleri arasında geçiş yaptıktan sonra atamaya otomatik olarak kaydedilir, bunu nasıl devre dışı bırakabilirim?
Failed to save the new associated contact_address.
: Ben hata alıyorum bu kodun ikinci satırında
def edit
@client = params[:type].classify.constantize.find params[:id]
@client.contact_address = Address.new(:kind => 2) if @client.contact_address.blank?
end
: Ben bu kodu çalıştırmak kontrolörün düzenleme yönteminde istemci modeli
class Client::Client < ActiveRecord::Base
has_one :contact_address, :class_name => "Address", :foreign_key => :client_id, :conditions => ["kind = ? and state = ?", 2, 1]
end
var atamak @ client.contact_address bir şekilde contact_address nesnesinde kaydetme yöntemini tetikledi ... Bunu istemiyorum ... Bu yeni Rails 3.1.x davranışı mı? İlişkili nesneleri yalnızca, .save dediğimde kaydetmek istiyorum. ebeveyn modelde - bu benim için çok fazla büyü. Bu davranışı bir yerlerde devre dışı bırakabilir miyim?
"@client = params [: type] .classify.constantize.find params [: id]" ifadesi benim için çok güvenli görünmüyor: kullanıcılarınızın içeri aktardıkları herhangi bir nesne türünü başlatmasına izin veriyorsunuz. parametre? –