首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Enum活动记录clearance_level问题

Enum活动记录clearance_level问题
EN

Stack Overflow用户
提问于 2017-09-29 16:38:37
回答 1查看 48关注 0票数 1

我有一个具有授权级别的用户表..。(客户/供应商/管理员)但是我似乎不能保存一个默认设置为0的新用户,这等于“clearance_level”,错误是"'0‘不是有效的“?

这是我的用户模型

代码语言:javascript
复制
  class User < ApplicationRecord
    include Clearance::User
    validates :email, presence: true
    validates :password, presence: true
    validates :password, confirmation: { case_sensitive: true }
    enum clearance_level: [:customer, :vendor, :admin]
  end

这是我的迁移文件..。(我删除了该列,并添加了一次,以防止它得到解决?)

代码语言:javascript
复制
  class ChangeClColumns < ActiveRecord::Migration[5.1]
    def change
      remove_column :users, :clearance_level
      add_column :users, :clearance_level, :integer, :default => 0

    end
  end

也是我的模式

代码语言:javascript
复制
create_table "users", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "email", null: false
t.string "encrypted_password", limit: 128, null: false
t.string "confirmation_token", limit: 128
t.string "remember_token", limit: 128, null: false
t.string "first_name"
t.string "last_name"
t.date "date_of_birth"
t.integer "clearance_level", default: 0
t.index ["email"], name: "index_users_on_email"
t.index ["remember_token"], name: "index_users_on_remember_token"

结束

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-29 17:00:02

这是因为您保存的是字符串“0”,而不是整数0。你从你的对角处得到的一切都是一根绳子。这里有两个选项: 1.在赋值前将其转换为整数。2.使用enum名称,从表单中发送"customer“,而不是"0”。两者都会成功地保存下来。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46493331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档