У меня возникла эта проблема, я пробовал много разных подходов, но
каждый раз, когда он попадает в эту ошибку.
Enviroment:
Рельсы 3.0.5
Mongoid 2.0.1
class User
include Mongoid::Document
field :name
has_and_belongs_to_many :companies
end
class Company
include Mongoid::Document
field :name
has_and_belongs_to_many :users
end
В моем методе UserController Создать я делаю что-то вроде этого:
@user = User.where(:email => params[:user][:email])
if @user.count > 0
@user.companies.push(@company)
@user.save
@company.users.push(@user)
@company.save
else
@user = User.create(:name => params[:user][:name],
:email => params[:user][:email],
:password => "123456")
@user.companies.push(@company)
@user.save
@company.users.push(@user)
@company.save
end
Когда пользователь не существует, он отлично работает.
Но если пользователь уже находится в БД, выдается ошибка.
NoMethodError in UserController#create
undefined method `companies' for #<Array:0x10679f638>
Но в конце концов это толкает объект в документ.
Я не знаю, что я что-то упустил.
Если кто-то знает, как это решить ... будет здорово.
Заранее спасибо.