Verwendung von ActiveModel :: Serializer in Rails - JSON-Daten unterscheiden sich zwischen JSON- und Indexantwort

Ich benutzeactive_model_serializers Edelstein, um die Serialisierungsdaten zu steuern und ein merkwürdiges Verhalten zu sehen. Mein Code sieht so aus:

Modell & Serializer
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
Regler
class UsersController < ApplicationController
  respond_to :json, :html

  def index
    @users = User.all
    respond_with @users
  end
end
view (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>

Nun, wenn ich die Ansicht rendere, sehe ich, dass diefull_name Attribut (generiert über Methode im Modell) fehlt in meinen Daten:

{
  "id": 2,
  "first_name": "John",
  "last_name": "Doe"
}

Wenn ich zugreife/users.json (Ich haberesources :users in meinemroutes.rb Datei), sehe ich die richtige JSON:

{
  "id": 2,
  "first_name": "John",
  "last_name": "Doe",
  "full_name": "Jonn Doe"
}

Ich konnte nicht sehen, was ich falsch machen könnte - jede Eingabe wird helfen. Vielen Dank.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage