ruby-on-rails – 带有模型关联的Rails json对象
发布时间:2020-12-17 03:05:59 所属栏目:百科 来源:网络整理
导读:我是 Ruby和Rails的新手.我在为我的服务构建json响应时遇到问题. 我有两个型号: class Transaction ActiveRecord::Basehas_and_belongs_to_many :usersendclass User ActiveRecord::Basehas_and_belongs_to_many :transactionsend 因此用户拥有交易集合并且
我是
Ruby和Rails的新手.我在为我的服务构建json响应时遇到问题.
我有两个型号: class Transaction < ActiveRecord::Base has_and_belongs_to_many :users end class User < ActiveRecord::Base has_and_belongs_to_many :transactions end 因此用户拥有交易集合并且交易具有用户集合.我要做的是返回所有涉及用户参与的交易以及涉及所有交易的其他用户. 我的json应该是这样的: {"transactions":[{"name":"transaction1","users":[{"userName":"user1"},{"userName":"user2"}]},{"name":"transaction2",{"userName":"user2"}]}]} 这是我的代码: @user = User.find_by_facebookId(params[:id]) #json = User.find_by_facebookId(params[:id],:include => :transactions).to_json( :include => :transactions ) if @user != nil render json: {"transactions" => @user.transactions.map do |transaction| transaction end } else render json: {"transactions" => [{}]} end 解决方法
您可以执行以下操作:
json_data = @user.transactions.map do |transaction| transaction.as_json(include: :users) end render json: { transactions: json_data } 基于这个问题/答案:Rails Object Relationships and JSON Rendering (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |