关联仅在创建时插入连接表,但不在新的保存上插入

时间:2013-05-29 16:42:37

标签: ruby-on-rails ruby-on-rails-3

Verisons:
Ruby 1.9.2p320
Rails 3.2.7

在我的has_and_belongs_to_manyusers模型中使用shows。该关联可以使用create正确保存,但不能使用new然后save保存。也不适用于buildsave。问题出在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中

enter image description here

使用m.shows.new然后保存

时不插入shows_users

enter image description here

1 个答案:

答案 0 :(得分:2)

您还必须保存用户m,因为您已将新节目添加到此用户。

m.save

写入shows_users

或尝试

u=User.find(1)
s=Show.new
s.users << u
s.save

(顺便说一句:所有在真实应用程序的rails console中测试过。)