如何在創建設計用戶時自定義JSON輸出?自定義在創建用戶帳戶時設計用戶JSON響應
### User.rb ###
class User < ActiveRecord::Base
devise :database_authenticatable,
:registerable, ...
...
end
### Routes.rb ###
...
devise_for :users, :controllers => {:registrations => "registrations"}
...
我有我的用戶表是祕密的一些額外的領域,但是當我通過JSON做一個用戶創造這樣他們得到的JSON響應返回:
$ curl -H "Content-Type: application/json" -d '{"user" : {"username":"someone","email":"[email protected]","password":"awesomepass"}}' -X POST http://localhost:3000/users.json
返回:
{"user":{"secret_field_1":"some value","secret_field_2":"some value","created_at":"2013-07-25T21:24:50-05:00","email":"[email protected]","first_name":null,"id":3226,"last_name":null,"updated_at":"2013-07-25T21:24:50-05:00","username":"someone"}}
我想隱藏這些祕密字段,但不知道如何自定義JSON響應。
我已經嘗試了標準的ActiveRecord串行:
class UserSerializer < ActiveModel::Serializer
attributes :id, :created_at, :updated_at, :email, :first_name, :last_name, :username
end
無濟於事,我因爲設計的猜測。
串行器不工作。序列化程序代碼不包含祕密字段,但JSON輸出仍然存在。 –
你確定Rails正在瀏覽序列化程序嗎? 也許你應該嘗試將一個binding.pry放入該序列化程序中,以便查看會發生什麼。否則,請嘗試在github或其他地方上傳您的項目樣本和相應的Gemfile(.lock),我會看看它。 – Simon