私は Rspec しか知りませんが、Test::Unit を使用するライブラリを修正する必要があります。
レコードをリロードすると、関連付けが nil になることがわかりました
例えば:
test "accepts nested attributes from subscription to user ()" do
@user = User.create(name:'Ash')
@subscription = @user.create_subscription()
puts "user: " << @user.inspect
puts "subscription: " << @user.subscription.inspect
@subscription.update_attributes({ :user_attributes => { :notification_comment => true } })
@user.reload
puts "user: " << @user.inspect
puts "subscription: " << @user.subscription.inspect
assert @user.subscription, "should have an subscription"
end
出力:
user: #<User id: 815823837, account_id: nil, name: "Ash", email: nil, settings: {}, created_at: "2013-02-07 04:28:51", updated_at: "2013-02-07 04:28:51">
subscription: #<Subscription id: 1, user_id: 815823837, created_at: "2013-02-07 04:28:51", updated_at: "2013-02-07 04:28:51">
user: #<User id: 815823837, account_id: nil, name: "Ash", email: nil, settings: {}, created_at: "2013-02-07 04:28:51", updated_at: "2013-02-07 04:28:51">
subscription: nil
なぜこれが起こるのですか?Subscription.find(@subscription.id)
確認しましたが、データベースに保存できることを確認できました。