【发布时间】:2013-08-14 12:28:38
【问题描述】:
我必须为User 和Company 建模。
以及像这样的关联:
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@em.com" :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"),你想找到/创建属于用户名为name的新公司吗?
标签: ruby-on-rails-3 associations