or the following should work, although I'd consider just writing a
different
partial (_edit_vendor) to render the <% else %> block, and I'd also
just duplicate the closing </tr> in each block, trading an extra
line of code for a self-contained table row.
<% unless edit_mode -%>
<tr id="vendor_<%= vendor.id %>">
<td><%= h vendor.name %></td>
<td><%= h vendor.location %></td>
<% else -%>
<% form_for :vendor do |f| -%>
<tr id="vendor_<%= vendor.id %>">
<td><%= f.text_field :name, :size => 15 %></td>
<td><%= f.text_field :location, :size => 15 %></td>
<td><%= f.submit 'save' %></td>
<% end -%>
<% end -%>
</tr>
On Jan 18, 5:38 am, Shilo Ayalon <[email protected]>
wrote:
> Hi - I have a strange thing happening in my app. I'm trying to replace a
> table row with a form row using link_to_remote and form_for. In my index
> view I have a call to edit:
>
> <%= link_to_remote 'edit vendor', :url => { :action => 'edit_vendor' }
> %>
>
> This works on a partial (_vendor.html.erb):
>
> <% @vendor = vendor %>
> <tr id="vendor_<%= vendor.id %>">
> <% unless edit_mode -%>
> <td><%= h vendor.name %></td>
> <td><%= h vendor.location %></td>
> <% else -%>
> <% form_for :vendor do |f| -%>
> <td><%= f.text_field :name, :size => 15 %></td>
> <td><%= f.text_field :location, :size => 15 %></td>
> <td><%= f.submit 'save' %></td>
> <% end -%>
> <% end -%>
> </tr>
>
> and finally I have a js template that adds the edit row and removes the
> original one
> (edit_vendor.js.rjs):
>
> page.insert_html :after, 'vendor_3',
> :partial => 'vendor',
> :object => Vendor.find(3), :locals => { :edit_mode =>
> true }
>
> page.remove 'vendor_3'
>
> I just tried testing with vendor_3 to see if this works. The action
> generates the form in the page source, but it isn't visible on the
> actual page. I can see the form tag using firebug (it appears faded, as
> though display:none -- when it's not), but for some reason which eludes
> me, it's invisible in the browser:
>
> <tr id="vendor_3">
> <form method="post" action="/vendors/edit_vendor">
> <div style="margin: 0pt; padding: 0pt;"/>
> <input type="hidden"
> value="248d3190ffb7dc764601dce231cd669054914fc5"
> name="authenticity_token"/>
> <td><input type="text" value="Vendor 1" size="15"
> name="vendor[name]"
> id="vendor_name"/></td>
> <td><input type="text" value="New York" size="15"
> name="vendor[location]"
> id="vendor_location"/></td>
> <td><input type="submit" value="save" name="commit"
> id="vendor_submit"/></td>
> </form>
> </tr>
>
> I checked and it doesn't have any other visibility css rules and such...
> Any clues what's happening?
>
> Attachments:http://www.ruby-forum.com/attachment/3169/invisible.png
>
> --
> Posted viahttp://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---