Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 设计隐藏的领域_Ruby On Rails_Devise - Fatal编程技术网

Ruby on rails 设计隐藏的领域

Ruby on rails 设计隐藏的领域,ruby-on-rails,devise,Ruby On Rails,Devise,我创造了一个设计模型 迁移是: t.string :provider, null: false, default: "email" t.string :uid, null: false, default: "" ## Database authenticatable t.string :encrypted_password, null: false, default: "" ## Recoverable t.string :reset_password_token t.datetime

我创造了一个设计模型

迁移是:

t.string :provider, null: false, default: "email"
t.string :uid, null: false, default: ""

## Database authenticatable
t.string :encrypted_password, null: false, default: ""

## Recoverable
t.string   :reset_password_token
t.datetime :reset_password_sent_at

# etc...
当我在那里输入
rails c
并键入
User
时,我会得到一个巨大的列列表

User(id: integer, provider: string, uid: string, encrypted_password: 
string, reset_password_token: string, reset_password_sent_at: datetime, 
remember_created_at: datetime, sign_in_count: integer,
current_sign_in_at: datetime, last_sign_in_at: datetime, 
current_sign_in_ip: string, last_sign_in_ip: string, 
confirmation_token: string, confirmed_at: datetime, 
confirmation_sent_at: datetime, unconfirmed_email: string...
但是当我键入
u=User.find(1)
时。它只有一些列
id、provider、uid、created\u at、updated\u at

当我执行
u.to_json
时,我得到
{“id”:1,“提供者”:“email”,“uid”:mymail@mail.com,“姓名”:“姓名”,“姓氏”:“姓氏”,“电子邮件”:mymail@mail.com,“创建时间”:“2016-08-07T18:27:24.186Z”,“更新时间”:“2016-08-07T18:34:48.647Z”}

它会忽略诸如在处确认、在处发送确认等字段

因此,我想在我的模型中添加更多的“隐藏”列。我该怎么做


谢谢

您的数据库中有不同的字段吗?(
处进行确认,
处发送确认等)

诸如此类:

 t.string   :confirmation_token
 t.datetime :confirmed_at
 t.datetime :confirmation_sent_at
还有其他的呢


检查您的模式文件(db/schema.rb)

designe有
黑名单用于序列化
常量。签入来源:

您可以在designe配置的
config/initializers/designe.rb
中隐藏列,使其不被序列化,行如下:


designe::Models::authenticable::BLACKLIST_FOR_SERIALIZATION.concat[:column_1,:column 2]

我的数据库中有这些字段。我可以使用
User.find(1).confirmation\u token
访问它们。但是当我执行
User.find(1).to_json
时,它会忽略这些字段。顺便说一句,我使用的是rails 5.0这不是一个bug,这是rails 5中的一些功能,我想它们保存了类似于
serializator
的内容,它忽略了这些字段。我很想知道他们是怎么做到的:)啊!好发现。当我安装Desive时,这是使我困惑的第一件事。