【发布时间】:2020-07-22 16:28:54
【问题描述】:
我有一个用户表,其中有一个角色模型的引用。我希望一个用户只有一个角色,所以我在我的 User 模型中设置了一个 has_one 关联,如下所示:
has_one :role
这是我的Role 模型关联:
belongs_to :user
这是我在schema.rb 中用于用户表的内容:
# other stuff
t.bigint "role_id"
t.index ["role_id"], name: "index_users_on_role_id"
我认为我的角色系统计划得很糟糕,但我正在努力挽救它。我想通过使用user.role 来访问用户的角色,其中user 是User 模型的一个实例。
为什么当我打电话给user.role 时我收到一条错误消息:
ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: column roles.user_id does not exist) LINE 1: SELECT "roles".* FROM "roles" WHERE "roles"."user_id" = $1 L...
更新
创建角色表的迁移文件:
class CreateRoles < ActiveRecord::Migration[6.0]
def change
create_table :roles do |t|
t.string :name, null: false, default: ""
t.boolean :can_delete_any_job, null: false, default: false
t.boolean :can_kick_any_user, null: false, default: false
t.boolean :can_claim_any_application, null: false, default: false
t.boolean :can_create_events, null: false, default: false
t.boolean :can_create_news_announcement, null: false, default: false
t.timestamps
end
end
end
【问题讨论】:
标签: ruby-on-rails associations