:autosave => false不适用于belongs_to关联

时间:2014-01-07 15:27:18

标签: ruby ruby-on-rails-4

我有以下类,这就是我想要建模的:用户有很多链接,链接可能属于许多用户,他们可能为他们的链接分配不同的标题。

class User < ActiveRecord::Base
  has_many :user_links
  has_many :links, through: :user_links
end

class UserLink < ActiveRecord::Base
  belongs_to :user, :autosave => false
  belongs_to :link

  # contains attribute :title 
end

class Link < ActiveRecord::Base
  has_many :user_links
  has_many :users, through: :user_links
end

所以,为了举例说明,我可能会有以下内容:

  • 用户(id: 1)(id: 2)
  • 链接(id: 1, url: "www.awebsite.com")
  • UserLinks (user_id: 1, link_id: 1, title: "Very cool website")(user_id: 2, link_id: 1, title: "A website")

当链接已经存在时,应该从数据库中检索它,并且必须创建一个新的user_link关联,但是当我调用时

@user.user_links.create(
    :title  => ...my_title...,
    :link_id => @link.id)

它说用户已被带走,所以我认为它正在尝试再次保存用户。为什么会发生这种情况,因为我设置了:autosave => false

如果我这样做的方式不对,那么正确的做法是什么?

0 个答案:

没有答案