0

こんにちは皆さん、使用に問題がありますbuild

Bag
 belongs_to :creator, :class_name => "User"
 has_many :users, :through => :assignments

User
 has_many :bags, :through => :assignments

Assignment
 attr_accessible :bag_id, :user_id
 belongs_to :bag
 belongs_to :user

外部キーの設定にBag適切に使用する を作成しようとしています。current_user's idしかし、起こり続けていることは、

Rails は適切に作成しますBagが、Bag.creator_id を current_user.id に設定する代わりに、と の両方を使用するinsertsためのエントリです。誰か助けてくれませんか?私は機知に富んでいます。Assignmentsbag's idcurrent_user's id

current_user.bags.build type: "Prada", price: 50
current_user.save
4

2 に答える 2

1

それがそれを使用している理由であるUserバッグを知っているだけのようです。次のようにrelテーブルをスキップしたい場合assignments、本当に必要なのはバッグと同等です:creator

User
 has_many :bags, :through => :assignments
 has_many :creations, :class_name => 'Bag'

bag = current_user.creations.build type: "Prada", price: 50
bag.save
于 2012-07-20T18:05:10.013 に答える
0

私はあなたのモデルがこのようであるべきだと思います

Bag
 belongs_to :creator, :class_name => "User"
 has_many :assignments
 has_many :users, :through => :assignments

User
 has_many :assignments
 has_many :bags, :through => :assignments

Assignment
 belongs_to :bag
 belongs_to :user
 attr_accessible :bag_id, :user_id

試す

bag = current_user.bags.build type: "Prada", price: 50
bag.save

また

current_user.bags.create type: "Prada", price: 50
于 2012-07-20T04:41:31.743 に答える