Usando ActiveModel :: Serializer in Rails - os dados JSON diferem entre json e resposta de índice
estou a usaractive_model_serializers
gem para controlar os dados de serialização, e vendo algum comportamento estranho. Meu código parece assim:
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
ver (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>
Agora, quando eu renderizo a visão, vejo que ofull_name
O atributo (gerado por meio do método no modelo) está ausente dos meus dados:
{
"id": 2,
"first_name": "John",
"last_name": "Doe"
}
Quando eu acesso/users.json
(Eu tenhoresources :users
no meuroutes.rb
arquivo), vejo o JSON correto:
{
"id": 2,
"first_name": "John",
"last_name": "Doe",
"full_name": "Jonn Doe"
}
Eu não pude ver o que eu poderia estar fazendo errado - qualquer entrada vai ajudar. obrigado.