Fred
Thanks. I took out the whole button_to line, but it still doesn't
work. I now have:
<h1>Editing orf</h1>
<% form_for @orf do |f| %>
<%= f.error_messages %>
<%= h @orf.locus_tag %>
<%= f.text_field 'current_annotation', :size => 50 %>
<%= f.submit "Update" %>
<% end %>
Still doesn't update.
On Apr 5, 6:12 pm, Frederick Cheung <[email protected]>
wrote:
> On Apr 5, 9:46 pm, dirtbug <[email protected]> wrote:
>
> > Thanks for the reply. I've now fixed the html (removed the table), but
> > it didn't fix the problem. The edit view is:
>
> You've still got a form nested inside a form (button_to creates a
> form)
>
> Fred
>
> > <h1>Editing orf</h1>
> > <% form_for @orf do |f| %>
> > <%= f.error_messages %>
> > <%= h @orf.locus_tag %>
> > <%= f.text_field 'current_annotation', :size => 50 %>
> > <%= f.submit "Update" %>
> > <%= button_to "Undo last change", :action => :undo_last_change, :id
> > => @orf %>
> > <% end %>
>
> > I'm not sure what you mean about taking a look at the raw data posted
> > by the browser to see if it is malformed. I turned on Firebug and
> > looked at what it was trying to do when I pressed my "Update" button
> > and I don't see anything wrong. It shows:
>
> > _method put
> > commit Update
> > orf[current_annotation] hypothetical proteinski
>
> > That looks OK to me , but I don't really know what I should be looking
> > for. I was trying to change the current_annotation from hypothetical
> > protein to hypothetical proteinski, so it looks like it tried. But
> > the change doesn't happen. Any suggestion of how to troubleshoot this
> > further?
>
> > On Apr 2, 4:56 pm, Frederick Cheung <[email protected]>
> > wrote:
>
> > > On Apr 2, 6:23 pm,dirtbug<[email protected]> wrote:> I have an update
> > > button that doesn't update. Watching the server
> > > > during the attempt, I see:
>
> > > > Processing OrvesController#update (for 128.119.60.171 at 2010-04-02
> > > > 13:13:29) [PUT]
> > > > Parameters: {"orf"=>nil, "commit"=>"Update", "id"=>"19544"}
>
> > > > orf is my model I'm trying to update in the database. Why is it nil?
>
> > > It's probably worth taking a look at the raw data posted by the
> > > browser - if it is malformed in some way that could be causing rails
> > > to parse it in a funny way. It probably doesn't help that your html is
> > > malformed (a td must be contained in a tr or similar, i'm pretty sure
> > > you can't stick a form in a table like that and the button_to will
> > > create a second form (ie you'll have a form nested in another form)
>
> > > Fred
>
> > > > The view for the page with the update button is called edit.html.erb
> > > > and contains:
>
> > > > <h1>Editing orf</h1>
> > > > <table>
> > > > <% form_for @orf do |f| %></td>
> > > > <td><%= f.error_messages %>
> > > > <td><%= h @orf.locus_tag %></td>
> > > > <td><%= f.text_field 'current_annotation', :size => 50
> > > > %></td>
> > > > <td><%= f.submit "Update" %></td>
> > > > <td><%= button_to "Undo last change", :action
> > > > => :undo_last_change, :id => @orf %></td>
> > > > <% end %>
>
> > > > orf's attributes locus_tag and current_annotation are being correctly
> > > > displayed.
>
> > > > Here's the update method:
>
> > > > def update
> > > > @orf = Orf.find(params[:id])
> > > > if @orf.update_attributes(params[:orf])
> > > > flash[:notice] = 'Orf was successfully updated.'
> > > > redirect_to orf_path
> > > > else
> > > > flash[:notice] = 'Update failed.'
> > > > redirect_to orf_path
> > > > end
> > > > end
>
> > > > routes.rb contains the line:
> > > > map.resources :orves
>
> > > > No error message appears in the web browser. The update just doesn't
> > > > change anything.
>
> > > > I'm running Rails 2.3.0.
>
> > > > Any idea what I'm doing wrong?
--
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.