Uso de ActiveModel :: Serializador en Rails: los datos JSON difieren entre json y respuesta de índice
Estoy usandoactive_model_serializers
gema para controlar los datos de serialización, y ver algún comportamiento extraño. Mi código se ve así:
class User
include Mongoid::Document
field :first_name, :type => String
field :last_name, :type => String
def full_name
first_name + " " + last_name
end
end
class UserSerializer < ActiveModel::Serializer
attributes :id, :first_name, :last_name, :full_name
end
controladorclass UsersController < ApplicationController
respond_to :json, :html
def index
@users = User.all
respond_with @users
end
end
vista (app / views / users / index.html.erb)...
<script type="text/javascript">
$(function(){
// using a backbone collection to manage data
App.users = new App.Collections.Users(<%= @users.to_json.html_sage %>);
});
</script>
Ahora, cuando renderizo la vista, veo que elfull_name
atributo (generado a través del método en el modelo) falta en mis datos:
{
"id": 2,
"first_name": "John",
"last_name": "Doe"
}
Cuando accedo/users.json
(Yo tengoresources :users
en miroutes.rb
archivo), veo el JSON correcto:
{
"id": 2,
"first_name": "John",
"last_name": "Doe",
"full_name": "Jonn Doe"
}
No pude ver lo que podría estar haciendo mal, cualquier entrada ayudará. Gracias.