Ruby on rails 具有模型关联的Rails json对象
我是Ruby和Rails的新手。我在为我的服务构造json响应时遇到问题。 我有两种型号:Ruby on rails 具有模型关联的Rails json对象,ruby-on-rails,ruby,json,associations,Ruby On Rails,Ruby,Json,Associations,我是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 这是我的密码: @user = User.find_by_facebookId(params[:
class Transaction < ActiveRecord::Base
has_and_belongs_to_many :users
end
class User < ActiveRecord::Base
has_and_belongs_to_many :transactions
end
这是我的密码:
@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 }
根据这个问题/答案:试试这个
render json: { "transactions" => @user.transactions.map do |transaction|
JSON.parse(transaction.to_json(:include => :users))
end
}
它将是散列而不是字符串数组。谢谢!这几乎完成了任务。我只得到\个字符,例如:{“事务”:[“{\”名称\“:\”测试\“,\”用户\“:…您可能必须在映射的closing end关键字后添加一个
。到\u json
,以消除此转义过程。这是add anothe\。也许我应该在我的类中使用\u json methodos或类似的方法?但无论如何,感谢您的帮助。编辑:as\u json起作用。
render json: { "transactions" => @user.transactions.map do |transaction|
JSON.parse(transaction.to_json(:include => :users))
end
}