我有一個紅寶石(on Rails的)類:爲什麼關聯對象不能保存?
class User < ActiveRecord::Base
# relationships
belongs_to :current_shipping_address, :class_name => "Address"
belongs_to :subscription
# Validators
validates_presence_of :subscription
validates_presence_of :current_shipping_address
end
我這樣做在一個控制器:
subscription = Subscription.new
address_info = params[:user].delete(:address) rescue {}
@address = Address.new(address_info.merge(:country => "US"))
@user = User.new(params[:user].merge(:first_name => @address.first_name, :last_name => @address.last_name))
@user.subscription = subscription
@user.current_shipping_address = @address
@user.save!
此時,不可思議的是,我有一個已經被保存在一個@user數據庫,但沒有current_shipping_address(儘管驗證)。訂閱也被保存在數據庫中。
地址不會被保存。
我在這裏錯過了什麼? 1 - 未驗證失敗,用戶如何保存? 2 - 爲什麼地址沒有保存?
我該如何修改這段代碼,以便保存地址(正如我所預期的那樣)?
我在Ruby on Rails的運行這3
謝謝!
我不想讓很多......但你的鏈接幫助我出去! – phil 2010-10-24 08:45:26