3

次のように、データベース テーブルから JSON にすべての情報を保存しようとしています。

File.open("tmp/users.json", 'wb') {|file| file << User.all.to_json }

問題は、ハッシュに次の列がないことです。

t.string   "encrypted_password",       :default => "",   :null => false
t.string   "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer  "sign_in_count",            :default => 0
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string   "current_sign_in_ip"
t.string   "last_sign_in_ip"

これらの列はすべて、Devise gem からのものです。それらを最終的な JSON ファイルに追加する方法は?

どうもありがとう。

4

2 に答える 2

0

JSON に表示したい属性を、そのモデルのホワイトリストに登録された attr_accessible 属性に追加してみてください。

例えば:

attr_accessible :last_sign_in_at, :current_sign_in_at

このオプションが気に入らない場合は、次のようにモデルの as_json をオーバーライドできます。

def as_json(options={})
  options["last_sign_in_at"] ||= self.last_sign_in_at
  super(options)
end
于 2013-07-24T01:02:32.200 に答える