【发布时间】:2012-11-02 06:57:33
【问题描述】:
我正在使用active_model_serializers gem 来控制序列化数据,并看到一些奇怪的行为。我的代码如下所示:
模型和序列化器
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
控制器
class UsersController < ApplicationController
respond_to :json, :html
def index
@users = User.all
respond_with @users
end
end
视图(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>
现在,当我渲染视图时,我发现我的数据中缺少 full_name 属性(通过模型中的方法生成):
{
"id": 2,
"first_name": "John",
"last_name": "Doe"
}
当我访问/users.json(我的routes.rb 文件中有resources :users)时,我看到了正确的JSON:
{
"id": 2,
"first_name": "John",
"last_name": "Doe",
"full_name": "Jonn Doe"
}
我看不出我做错了什么——任何输入都会有所帮助。谢谢。
【问题讨论】:
-
请标记您使用的语言,而不是诸如“mismtach”之类的无用标签 - 这次我已经为您完成了
-
没问题 - 只是一个友好的提醒 :) 它改进了语法着色并会吸引更多的关注
-
还没有。如果你有什么,请告诉我。
标签: ruby-on-rails ruby json mongoid active-model-serializers