2014-11-13 2 views
0

У меня есть два Rails модели вида:Добавление записи в ассоциацию has_many_and_belongs_to?

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 

, но это не похоже на работу. Все указатели приветствуются

+2

'has_many_and_belongs_to' - это [' has_and_belongs_to_many'] (http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_and_belongs_to_many)? – Stefan

ответ

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).

Смежные вопросы