Мне нужно моделировать User
и Company
. И ассоциация, как:Rails HABTM ассоциация: запись не вставляемая в соединительный стол
class User < ActiveRecord::Base
has_and_belongs_to_many :companies
end
и
class Company < ActiveRecord::Base
has_and_belongs_to_many :users
end
В миграции, чтобы создать соединяющую таблицу:
class CreateCompaniesUsers < ActiveRecord::Migration
def change
create_table :companies_users, :id => false do |t|
t.references :company
t.references :user
t.timestamps
end
end
end
Это работает нормально, когда:
user = User.new(:name => "name", :email => "[email protected]" :password => "pass")
user.companies.find_or_create_by_name(:name => "name")
user.save
Это не работает, (но вставки данных в users
и companies
), когда:
user = User.first # or by finding some existing user
user.companies.find_or_create_by_name(:name => "name")
Кроме того он показывает сообщение:
Creating scope :page. Overwriting existing method Company.page.
Пожалуйста, помогите мне выйти из этого. Благодарю.
Возможно, вы использовали неправильный метод, попробуйте 'user.companies.find_or_create_by (: name =>" name ")', вы хотите найти/создать новую компанию принадлежит пользователю с именем компании 'имя'? – Thanh