Forum: Ruby on Rails Send a collection from view to controller

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
3a39c4fe86b368b3d7499ab28997541d?d=identicon&s=25 Hiro (Guest)
on 2009-03-26 18:21
(Received via mailing list)
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.

Controller:

@member=Member.find(:all)

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


View:

Inside a form that redirects to the controller

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

<%=submit_tag("Add")%>


<%= 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]:

    ""list"=>{"#<User:0xb7086210>"=>""}}"

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


I Hope someone can help me! Thanks!
775dc78d64c87ae51db522529c3784e9?d=identicon&s=25 Phillip (Guest)
on 2009-03-27 14:54
(Received via mailing list)
First, the comparison between params[:new_member] and nil should use
"=="
     if nil == params[:new_member]
3a39c4fe86b368b3d7499ab28997541d?d=identicon&s=25 Hiro (Guest)
on 2009-03-27 16:50
(Received via mailing list)
On Mar 27, 8:53 am, Phillip <p...@phillip harris.com> wrote:
> 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.
5f94b9b346c2aa648a80bc259978e5bc?d=identicon&s=25 Colin Law (Guest)
on 2009-03-27 17:01
(Received via mailing list)
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.

2009/3/27 Hiro <hiromoto.hiroshi@gmail.com>
This topic is locked and can not be replied to.