J'ai deux modèlesRails - build_association ne fonctionne pas pour une has_one et les relations belongs_to
class Subscription < ActiveRecord::Base
belongs_to :client
end
class Client < ActiveRecord::Base
has_one :subscription
end
mais quand je tente de créer un parent de l'enfant par exemple sub.build_client la clé étrangère n'est pas définie, par ex.
>> 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>
Il fonctionne si je 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
Ive a passé 3 heures et tripoter a nulle part. Quelqu'un peut-il expliquer ce que je fais mal, les choses à vérifier etc
merci John, je pensais que c'était le cas (j'ai consulté le guide des rails mais je n'ai pas trouvé cela expliqué, donc je voulais confirmer ici sur stackoverflow). Mais comment se fait avec un has_many appartient à la relation que cela peut être fait. – robodisco
Je pensais juste que si ça ne peut pas être fait, pourquoi est la méthode de construction là? Si le foreign_id ne peut pas être défini quelle est l'utilisation de cette méthode dans cette relation? – robodisco
C'est une bonne question. –