Много ко многим Создание отношений - PullRequest
1 голос
/ 11 июня 2011

Есть 3 моих класса. Извините, что у меня нет терминологии, я довольно нубизм.

class User < ActiveRecord::Base
  has_many :memberships
  has_many :groups, :through => :memberships
end

class Group < ActiveRecord::Base
  has_many :memberships
  has_many :users, :through => :memberships
end

class Membership < ActiveRecord::Base
  belongs_to :group
  belongs_to :user
end

В моем контроллере группы я хочу сделать следующее в методе создания

@user = User.first 'Confirmed that this user exists
@group = @user.groups.new(params[:group])

if @group.save
  ... etc

Проблема, с которой я столкнулся, заключается в том, что таблица членства пуста, т. Е. Если я иду к консоли rails и набираю Membership.all, то она пустая, но группа генерируется.

Однако, если я зайду в консоль и сделаю следующее, она правильно сгенерирует строку Членства

@user = User.first
@user.groups.create(:name => "name")
Membership.all

И членство связано правильно.

Я что-то не так делаю в контроллере?

Спасибо за помощь, ребята / девочки!

1 Ответ

0 голосов
/ 12 июня 2011

Попробуйте использовать .build вместо .new в вашем контроллере, например:

@group = @user.groups.build(params[:group])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...