将记录添加到has_many_and_belongs_to关联?

时间:2014-11-13 07:39:39

标签: ruby-on-rails ruby

我有两种形式的Rails模型:

class User < ActiveRecord::Base
    has_many_and_belongs_to :tags
end

class Tag < ActiveRecord::Base
    has_many_and_belongs_to :users
end

我有一个创建tags_users表的迁移。

如何将记录添加到tags_users表中? (标签和用户是唯一的)

我正在尝试做

users.tag_ids << new_tag

但这似乎不起作用。欢迎提出任何指示

1 个答案:

答案 0 :(得分:1)

有多种方法可以实现这一目标,例如:

u = User.first
t = Tag.create(name: 't')
u.tag_ids << t.id

# or:

u = User.first
t = Tag.new(name: 't')
u.tags << t

您无法在集合上调用collection_singular_ids(在这种情况下为tag_ids)。值得注意的是,拥有HABTM关联,您无法明确访问连接模型(例如TagUser)。