ruby on rails -如何构建JSON对象



目前我通过以下方式构建一个JSON对象:

@users = User.all
@users.each do |user|
  @userlist << {
    :id => user.id,
    :fname => user.fname,
    :lname => user.lname,
    :photo => user.profile_pic.url(:small)
  }
end

我的挑战是我现在想要包括@contacts表中的记录,这些记录具有与User模型不同的字段集。

I tried doing

@users = User.all
@contacts = current_user.contacts
@users << @contacts

但这不起作用。将两个相似的模型组合成一个JSON对象的最佳方法是什么?

json = User.all( :include => :contacts).to_json( :include => :contacts )

更新

对不起,让我给你一个更完整的答案…

@users = User.all( :include => :contacts )
@userlist = @users.map do |u|
  { :id => u.id, :fname => u.fname, :lname => u.lname, :photo => u.profile_pic.url(:small), :contacts => u.contacts }
end
json = @userlist.to_json
另一个更新

好吧,那就忘了我吧——我今天过得很糟糕,完全没有理解你问题的重点。您需要一些包含两组不相关数据的JSON。所有用户,为当前用户的联系人。

你想为它创建一个新的哈希值,就像这样…

@users = User.all
@userlist = @users.map do |u|
  { :id => u.id, :fname => u.fname, :lname => u.lname, :photo => u.profile_pic.url(:small) }
end
json = { :users => @userlist, :contacts => current_user.contacts }.to_json
  @userlist = @users.map do |u|
    u.attributes.merge!(:contacts=>current_user.contacts)
  end
  json = @userlist.to_json

相关内容

  • 没有找到相关文章

最新更新