Доброго времени суток
У меня есть две модели, Group и User
class Group < ActiveRecord::Base
has_and_belongs_to_many :users
end
class User < ActiveRecord::Base
has_and_belongs_to_many :groups
end
Миграция
#rails g migration CreateJoinTableGroupsUsers groups users
class CreateJoinTableGroupsUsers < ActiveRecord::Migration
def change
create_join_table :groups, :users, id: false do |t|
# t.index [:group_id, :user_id]
# t.index [:user_id, :group_id]
end
end
end
Эта миграция создает следующую таблицу:
create_table "groups_users", id: false, force: true do |t|
t.integer "group_id", null: false
t.integer "user_id", null: false
end
Суть проблемы: после создания новой группы я могу посмотреть всех юзеров внутри нее, но не могу совершить обратный процесс
Group.find(id).users #=> #<ActiveRecord::Associations::CollectionProxy [...users...]>
User.find(id).groups #=> nil
По идее, должно работать в обе стороны? Как правильно это сделать?