嗨我正在尝试在渲染json做User.all时包含用户的角色 我在rails和Mongoid上使用ruby
我只在我的回复中得到了role_id ......
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
如何在响应中嵌入角色?
答案 0 :(得分:2)
如果您还没有包含角色,那么您将获得仅代表用户的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
答案 1 :(得分:1)
如果您尚未使用gem,请将gem'active_model_serializers'添加到您的gemfile中。然后使用
生成用户序列化程序joins
然后将以下内容添加到app / serializers / user_serializer.rb文件中。
rails generate serializer user