2016-08-07 8 views
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... 

しかし、膨大なリストを取得私はと入力します。一部の列は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_atconfirmation_sent_atなどのようなフィールドを無視し、私は私のモデルにいくつかのより多くの「隠された」列を追加したいです。どうすればいいのですか?

ありがとうございます!

答えて

0

データベースに異なるフィールドがありますか? (condirmed_atconfirmation_send_atなど。)そのような

何か:

t.string :confirmation_token 
t.datetime :confirmed_at 
t.datetime :confirmation_sent_at 

及びその他?

スキーマファイル(db/schema.rb)を確認してください

+0

私のデータベースにはこれらのフィールドがあります。そして、私は 'User.find(1).confirmation_token'を使ってそれらにアクセスできます。しかし、 'User.find(1).to_json'を実行すると、これらのフィールドは無視されます。 Btw、私はレールを使用しています。5.0 –

+0

私は、deviseとrails 5のバグです。 –

+0

これはバグではなく、これはレール5のいくつかの機能です。これらのフィールドは無視されます。そして、私は彼らがそれをどうやっているのか知りたいと思っています:) –