Verisons:
Ruby 1.9.2p320
Rails 3.2.7
在我的has_and_belongs_to_many
和users
模型中使用shows
。该关联可以使用create
正确保存,但不能使用new
然后save
保存。也不适用于build
和save
。问题出在new
然后save
,它不会在shows_users
联接表中插入任何内容。
此作品
m = User.find_by_id(1)
m.shows.create()
这不起作用(shows_users
时不会插入saved
):
m = User.find_by_id(1)
d = m.shows.new()
d.save
请参阅以下IRB的截图:
使用m.shows.create
时插入到shows_users中
使用m.shows.new然后保存
时不插入shows_users
答案 0 :(得分:2)
您还必须保存用户m
,因为您已将新节目添加到此用户。
m.save
写入shows_users
或尝试
u=User.find(1)
s=Show.new
s.users << u
s.save
(顺便说一句:所有在真实应用程序的rails console
中测试过。)