It works :)    Awesome!
Now I'm trying to figure out the best way to extract the data in the
controller so that I can update the user.approval value for each
user.  This is what's being passed:

  Parameters: {"commit"=>"Submit", "user"=>{"6"=>{"approval"=>"1"},
"1"=>{"approval"=>"1"}, "2"=>{"approval"=>"2"}, "3"=>
{"approval"=>"2"}, "4"=>{"approval"=>"2"}, "5"=>{"approval"=>"2"}},
"authenticity_token"=>"39757ec52a8cb0e04a7533686976d49388378c02",
"_method"=>"put", "action"=>"approve", "controller"=>"admin/users"}

Any hints would be appreciated!
Thanks in advance,

~Cheri


On Sep 22, 12:41 pm, liquid_rails <[email protected]> wrote:
> Great, thanks Jason!  I'll try it.  - Cheri
>
> On Sep 22, 12:04 pm, Jason King <[email protected]> wrote:
>
> > No :)
>
> > So, yeah, if you want just a single submit button then you'll want a
> > single form and you should use fields_for with the :index option...
>
> >    <% form_for ....etc. do %>       <%# ....you can just have a
> > form_tag here if you want %>
> >      <% @users.each do |user| %>    <%# total aside: this is more Ruby-
> > ish syntax %>
> >        <%= other things %>
> >        <% fields_for user, :index => user.id do |f| %>
> >          <%= f.radio_button :approval ..etc. %>
> >        <% end %>
> >      <% end %>
> >      <%= submit_tag %>
> >    <% end %>
>
> > You'll find that all the radio buttons will be indexed, so you'll
> > receive params[:user][id_of_user][:approval] in your controller, so
> > you can easily set the right values for the right user all in one
> > action.
>
> > On Sep 22, 2009, at 11:48 AM, liquid_rails wrote:
>
> > > Thanks, Jason.
>
> > > So, if I have a separate form for each user, is there any way to have
> > > just one submit button to submit all forms at the same time?
>
> > > Cheri
>
> > > On Sep 22, 11:42 am, Jason King <[email protected]> wrote:
> > >> The problem is that you've got form_for [:admin, :user] instead of
> > >> form_for [:admin, @user] and then you're expecting (somehow)
> > >> f.radio_button to know which user to use to retrieve the seed value.
> > >> Rails is using the last element of that array and calling
> > >> the .approval method on it (hence the error about the user:Symbol
> > >> (ie. :user ) not having that method defined.
>
> > >> You're more likely to want to put the form within the @users
> > >> iteration
> > >> block, so that you have a separate form for each user.  You can
> > >> then do:
>
> > >>   <% for user in @users %>
> > >>     <% form_for [:admin, user] ...etc. do %>
> > >>       <%= f.radio_button :approval ...etc. %>
>
> > >> If not, if you want it all in one form, then you won't be able to use
> > >> the form_for block helpers, rather you'll need to use
> > >> radio_button_tag
> > >> and setup the values and names manually.
>
> > >> Regards,
> > >> Jason
>
> > >> On Sep 22, 2009, at 11:30 AM, liquid_rails wrote:
>
> > >>> I'm trying to generate a list of users with two radio buttons next
> > >>> to
> > >>> each user where I can either approve or reject a user, all in the
> > >>> same
> > >>> form.
> > >>> The following code, illustrates what I am trying to do and the
> > >>> error I
> > >>> am getting.
> > >>> Does anybody know how to do this?  Thanks in advance!  - Cheri
>
> > >>> create_table "users", :force => true do |t|
> > >>>   t.string   "name"
> > >>>   t.integer  "approval", :default => 0  # 0=needs approval,
> > >>> 1=approved, 2=not approved
> > >>> end
> > >>> -------------------
>
> > >>> <% form_for [:admin, :user], :url => {:action =>
> > >>> "user_approval" }  do
> > >>> |f| %>
> > >>> <% for user in @users %>
> > >>>   <tr>
> > >>>     <td><%= user.id %></td>
> > >>>     <td><%= user.name %></td>
> > >>>     <td><%= user.approval %></td>  #current state of the user's
> > >>> approval status
> > >>>     <td><%= f.radio_button :approval,'1' %>"Approve" </td>
> > >>>     <td><%= f.radio_button :approval,'2'  %>"Reject" </td>
> > >>>   </tr>
> > >>> <% end %>
> > >>> <p> <%= f.submit "Submit" %> </p>
> > >>> <% end %>
>
> > >>> ---------
> > >>> Error:
> > >>> undefined method `approval' for :user:Symbol
--~--~---------~--~----~------------~-------~--~----~
SD Ruby mailing list
[email protected]
http://groups.google.com/group/sdruby
-~----------~----~----~----~------~----~------~--~---

Reply via email to