Rails - JSON object with an array?

Hello, I'm able to create and send a JSON object like so:

      @mylist << {         :id => item.id,         :name => name.id       }

    render :json => { :result => 'success', :mylist => @mylist }

That works great. Problem I'm having now is that I need to include users which can be 1 or users per item.

      @mylist << {         :id => item.id,         :name => name.id,         :users => item.users       }

Where `item.users` contains a list of (user.id, user.name, user.desc).

how do I include an array like users inside a json object? Right now it is including all the user columns which I don't need. How can I specify which columns to include. Also it appears to be breaking the JSON object, now everything following the first item.users in the JSON object is:

,{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}, {},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}],"result":"success"}

Thanks

UPDATE

the code above is inside a:

@items.each_with_index do |item, i| end Perhaps that is a problem here?

UPDATE

the code above is inside a:

@items.each_with_index do |item, i| end Perhaps that is a problem here?

Hello, I'm able to create and send a JSON object like so:

      @mylist << {         :id => item.id,         :name => name.id       }

    render :json => { :result => 'success', :mylist => @mylist }

That works great. Problem I'm having now is that I need to include users which can be 1 or users per item.

      @mylist << {         :id => item.id,         :name => name.id,         :users => item.users       }

Where `item.users` contains a list of (user.id, user.name, user.desc).

how do I include an array like users inside a json object? Right now it is including all the user columns which I don't need. How can I specify which columns to include. Also it appears to be breaking the JSON object, now everything following the first item.users in the JSON object is:

,{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}, {},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}],"result":"success"}

I think you are running into problems because you are not following strictly the MVC pattern.

I assume the code pasted is executed by the controller, correct? Maybe you should look at the as_json method to define json format from the model itself. For example, if Item is a model (inherited from ActiveRecord) and User is too, you should be fine defining two as_json methods inside the two models. That should allow you to render the data in the controller with a simple:

render :json => @list

If you need more "customization", you should consider redendering json via an erb view (leave the controller alone!!! :D).