Как этот атрибут с подчеркиванием в моей модели конвертируется в слова, разделенные тире? - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть сериализатор с экземпляром модели Book.

Я передал свой экземпляр serializer классу

ActiveModelSerializers::Adapter::JsonApi.new(serializer), где serializer - мой экземпляр.

Вышеприведенный вызов метода вернул это

#<ActiveModelSerializers::Adapter::JsonApi:0x000000000b515b48 @serializer=#<BookSerializer:0x0000000008496a30 @object=#<Book id: 8, type: "Book", created_at: "2018-09-18 10:25:55", updated_at: "2018-09-18 10:25:55">, @instance_options={:scope}, @root=nil, @scope=nil, @serializer_class=BookSerializer, @attributes={:id=>8, :email=>"random@exam.com", :author=>"user1", :created_at=>Tue, 18 Sep 2018 10:25:55}, @_config={}>, @instance_options={}, @include_directive=#<JSONAPI::IncludeDirective:0x000000000b515aa8 @hash={}, @options={:allow_wildcard=>true}>, @fieldset=#<ActiveModel::Serializer::Fieldset:0x000000000b5159e0 @raw_fields={}>> 

Затем я попытался вызвать serializable_hash для экземпляра класса Adapter, как показано ниже

ActiveModelSerializers::Adapter::JsonApi.new(serializer).serializable_hash Выше вызова вернул это

{:data=>{:id=>"8", :type=>"books", :attributes=>{:email=>"random@exam.com", :author=>"user1", :"created-at"=>Tue, 18 Sep 2018 10:25:55 UTC +00:00}, :relationships=>{:"book"=>{:data=>{:id=>"15", :type=>"books"}}}}}

Приведенные выше данные преобразованы в created_at в created-at.

Что происходит, когда я вызываю serializable_hash в экземпляре класса адаптера?

1 Ответ

0 голосов
/ 18 сентября 2018

Сериализуемый хэш возвращает сериализованный хэш вашего объекта.

book = Book.new
book.title = 'Legends'
book.content  = 'Once upon a time, in a far away galaxy'
book.serializable_hash # => {"title"=>"Legends", "content"=>"Once upon a time, in a far away galaxy"}

Проверка ссылок this out

...