1
我创建有一项模型设计隐藏字段
迁移:
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_at, updated_at
。
当我做u.to_json
我得到{"id":1,"provider":"email","uid":"[email protected]","name":"Name","surname":"Surname","email":"[email protected]","created_at":"2016-08-07T18:27:24.186Z","updated_at":"2016-08-07T18:34:48.647Z"}
。
它忽略领域,如confirmed_at
,confirmation_sent_at
等等
所以,我想在我的模型添加一些“隐藏”的列。我该怎么做?
谢谢!
我在我的数据库中有这些字段。我可以使用'User.find(1).confirmation_token'来访问它们。但是当我做'User.find(1).to_json'时,它会忽略这些字段。顺便说一句,我正在使用rails 5.0 –
我认为,这是设计和rails 5之间的一个bug ... –
这不是一个bug,这是rails 5中的一些特性,我猜他们保存了类似'serializator'的东西忽略这些字段。我很想知道他们是如何做到的:) –