Replacing table row with form

I need a way to replace a table row with a form to edit it’s values –
kind of like edit-in-place, only that I need a custom form (check boxes,
select lists, text fields, etc). My table is generated with a partial of
a model.

The row should have a button/link to enable to go in and out of edit
mode, and this should be done asynchronously. Here’s what I came up with
so far:

view

<%= render :partial => 'person', :collection => @people %>

partial

<% @person = person -%>
<% @row_id = “person_#{person.id}” %>

<%= link_to_remote 'edit', :url => { :action => 'edit_row'} %> <%= person.name %> <%= person.age %>

I need help with the controller and how to replace the specific row
(with id=“person_”) with a form. Should the form be hidden in the
partial and controlled by a boolean passed to it (if true, show form >
else show the normal view)? meaning:

<% if edit_mode -%>
<% form_for :person do |f| -%>

<%= f.text_field :name %>
<%= f.text_field :age %>
<%= f.submit ‘go’ %>
<% end -%>
<% else -%> <%= link_to_remote 'edit', :url => { :action => 'edit_row'} %> <%= person.name %> <%= person.age %> <% end -%>

I can’t be the only one who’s trying to do this, so I’d really
appreciate any thoughts, insights and such. Thanks in advance!

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs