Ruby on rails 如何在json响应中包含子对象
嗨,我试图在呈现json doing user.all时包含用户角色 我正在使用RubyonRails和Mongoid 我只在回复中得到角色idRuby on rails 如何在json响应中包含子对象,ruby-on-rails,ruby,mongoid,Ruby On Rails,Ruby,Mongoid,嗨,我试图在呈现json doing user.all时包含用户角色 我正在使用RubyonRails和Mongoid 我只在回复中得到角色id role_id":"56cb596bc226cb5c04efd1cb 用户模型: class User include Mongoid::Document include ActiveModel::SecurePassword has_many :role belongs_to :store has_many :orders
role_id":"56cb596bc226cb5c04efd1cb
用户模型:
class User
include Mongoid::Document
include ActiveModel::SecurePassword
has_many :role
belongs_to :store
has_many :orders
榜样:
class Role
include Mongoid::Document
belongs_to :user
field :name, type: String
field :active, type: Mongoid::Boolean
我得到的答复是:
{"_id":"...","api_key":"...","email":"jesus@drinkz.io","name":"... Garcia","password_digest":"...","promotion_ids":[],
"role_id":"56cb596bc226cb5c04efd1cb"}
如何获得响应:get/api/v1/users
def index
@user = User.first
respond_with @user
end
如何在响应中嵌入角色?如果不包含角色,您将获得仅代表用户的JSON。你可以像下面这样做
def index
@user = User.first
respond_with(@user, :include => :role)
end
传统的方式是
def index
@user = User.first
respond_to do |format|
format.json { render :json => @user.to_json(:include => :role) }
end
end
如果不包括该角色,您将获得仅代表用户的JSON。你可以像下面这样做
def index
@user = User.first
respond_with(@user, :include => :role)
end
传统的方式是
def index
@user = User.first
respond_to do |format|
format.json { render :json => @user.to_json(:include => :role) }
end
end
如果尚未使用gem文件,请将gem“活动\模型\序列化程序”添加到gem文件中。然后使用
rails generate serializer user
然后将以下内容添加到app/serializers/user_serializer.rb文件中
class UserSerializer < ActiveModel::Serializer
attributes :id, :email,:name, :password_digest, :promotion_ids, :api_key
has_many :roles
end
class UserSerializer
如果您尚未使用gem文件,请将gem“active\u model\u serializers”添加到gem文件中。然后使用
rails generate serializer user
然后将以下内容添加到app/serializers/user_serializer.rb文件中
class UserSerializer < ActiveModel::Serializer
attributes :id, :email,:name, :password_digest, :promotion_ids, :api_key
has_many :roles
end
class UserSerializer
您是如何得到响应的?我使用的是get-on/api/v1/users和returning-User.first您是如何得到响应的?我使用的是get-on/api/v1/users和returning-User.first