我有兩個型號導軌 - build_association不工作了HAS_ONE和belongs_to的關係
class Subscription < ActiveRecord::Base
belongs_to :client
end
class Client < ActiveRecord::Base
has_one :subscription
end
,但是當我嘗試創建例如從孩子父母sub.build_client外鍵未被設置,例如
>> sub = Subscription.new
=> #<Subscription id: nil, token: nil, user_id: nil, created_at: nil, updated_at: nil, cancelled: nil, active: nil, client_id: nil>
>> sub.save(false);
?> client = sub.build_client
=> #<Client id: nil, server_id: nil, ip: nil, created_at: nil, updated_at: nil>
>> client.save(false)
=> true
>> sub.client_id
=> nil
>> sub
=> #<Subscription id: 4, token: nil, user_id: nil, created_at: "2010-01-11 06:07:45", updated_at: "2010-01-11 06:07:45", cancelled: nil, active: nil, client_id: nil>
它的工作,如果我做client.build_subscription
?> client = Client.new
=> #<Client id: nil, server_id: nil, ip: nil, created_at: nil, updated_at: nil>
>> client.save(false)
=> true
>> sub = client.build_subscription
=> #<Subscription id: nil, token: nil, user_id: nil, created_at: nil, updated_at: nil, cancelled: nil, active: nil, client_id: 4>
>> sub.save(false)
=> true
>> sub
=> #<Subscription id: 5, token: nil, user_id: nil, created_at: "2010-01-11 06:09:32", updated_at: "2010-01-11 06:09:32", cancelled: nil, active: nil, client_id: 4>
>> client
=> #<Client id: 4, server_id: nil, ip: nil, created_at: "2010-01-11 06:09:02", updated_at: "2010-01-11 06:09:02">
>> ^C
伊夫花了3個小擺弄,得到了無處可去快。 任何人都可以解釋我做錯了什麼,要檢查的東西等
謝謝約翰,我認爲這是這種情況(我曾經諮詢了導軌指南,但沒有找到這個解釋,所以想在這裏確認在stackoverflow)。但是,如何與has_many屬於關係,這可以做到。 – robodisco 2010-01-11 12:13:41
我只是想,如果它不能做,爲什麼是那裏的構建方法?如果foreign_id不能在這種關係中設置該方法的用途? – robodisco 2010-01-11 12:18:41
這是一個很好的問題。 – 2010-01-11 12:41:53