我的公司通过联接表company_user拥有许多用户。每个用户只能为一家公司工作。这是1对多的关系。
我已经四处寻找,并在https://stackoverflow.com/a/7080017/883102
中找到了解决方案但是我收到了错误
PG :: UndefinedTable:错误:关系“公司”不存在 第5行:在哪里a.attrelid ='“公司”':: regclass
当我尝试创建公司时。我该如何解决这个问题?
我的模特
公司
class Company < ActiveRecord::Base
has_many :employments
has_many :users, :through => :employments
end
用户
class User < ActiveRecord::Base
...
end
就业
class Employment < ActiveRecord::Base
belongs_to :company
belongs_to :user
end
我的联接表的迁移是
create_table :employment do |t|
t.belongs_to :company
t.belongs_to :user
t.timestamps
end
我的schema.rb
create_table "company", force: true do |t|
t.integer "rating"
t.integer "phone"
t.string "name"
t.string "address"
t.string "email"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "employment", id: false, force: true do |t|
t.integer "company_id"
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "users", force: true do |t|
t.string "name"
t.string "email"
t.datetime "created_at"
t.datetime "updated_at"
t.string "password_digest"
t.string "remember_token"
t.string "role"
end
答案 0 :(得分:3)
嗨,我在这里找到了答案 https://stackoverflow.com/a/24318236/883102
问题是我的表名是单数形式,我在迁移中更改了这些,然后重新创建了数据库。现在一切似乎都很好。
我的用户类最终为
class User < ActiveRecord::Base
has_one :employment
has_one :company, :through => :employment
end
这是为了允许双向关联