JSON çıktısını, bir Kullanıcı'nın oluşturulmasında nasıl özelleştirebilirim?Kullanıcı hesabının oluşturulmasında kullanıcı tanımlı JSON yanıtını özelleştirme
### User.rb ###
class User < ActiveRecord::Base
devise :database_authenticatable,
:registerable, ...
...
end
### Routes.rb ###
...
devise_for :users, :controllers => {:registrations => "registrations"}
...
Ben gizli olan benim Kullanıcı tablosundaki bazı ekstra alanlar var ama ben böyle JSON aracılığıyla, Kullanıcı oluşturma ne zaman onlar JSON yanıt olarak döndürülen olsun:
$ curl -H "Content-Type: application/json" -d '{"user" : {"username":"someone","email":"[email protected]","password":"awesomepass"}}' -X POST http://localhost:3000/users.json
döndürür :
{"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"}}
o gizli alanları gizlemek istediğiniz, ancak JSON yanıtını özelleştirmek için nasıl bilmiyorum. Çünkü hazırlamak ait tahmin ediyorum, boşuna
class UserSerializer < ActiveModel::Serializer
attributes :id, :created_at, :updated_at, :email, :first_name, :last_name, :username
end
:
Ben standart ActiveRecord seri hale denedim.
Diziselleştirici çalışmıyor. Sahip olduğum serileştirici kodu gizli alanları içermiyor, ancak JSON çıkışı hala çalışıyor. –
Rails'in serileştiriciden geçtiğinden emin misiniz? Belki de neler olduğunu görmek için bir binding.pry'yi bu serializer'a bırakmayı denemelisiniz. Else, github veya başka bir yere projenin bir örneğini karşılık gelen Gemfile (.lock) ile yüklemeye çalışın, ona bir bakacağım. – Simon