Send a collection from view to controller

Hi everybody,

Maybe this is a sort of newbie question but I've been trying to solve it for several days without a solution.

Basically what I want to do is to pass a collection from the view to my controller. I paste here the relevant part of both.



if params[:new_member]=nil   @list=   @list.push( else   @list=params['list']   @list.push(Member.find(params[:new_member])) end


Inside a form that redirects to the controller

<select name="new_member">    <%@member.each do |member|%>      <option value="<>" ><></option>    <%end%> </select>


<%= hidden_field "list", @list %> # [1]

[1] Here's the problem. The error I got is

   "undefined method `push' for {"#<User: 0xb7086210>"=>""}:HashWithIndifferentAccess"

But more important in parameters[error log]:


It means that the params['list'] value is taken as [that is just garbage]

I Hope someone can help me! Thanks!

First, the comparison between params[:new_member] and nil should use "=="      if nil == params[:new_member]

Yes you're right It was a typing error here in the post. But I still have this problem I hope so can help me.

Have a look in the log to see what the parameters are, particularly params[:list]. I think your code is assuming it is an array but the error suggests otherwise. Also have a look in the debugger to what is what. Also the source of the web page may be informative.