On 5 April 2010 21:46, 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: > <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:
Try the html validator addon for firefox as I suggested, or/and the w3c html validator (google will find it). Then you know your html is valid. Then have a look at the debugging guide at http://guides.rubyonrails.org/ which will show how to break into your code using ruby-debug (and other debugging techniques) to find out what is going wrong. Also have a look at the params in the log and convince yourself the data are there as expected. Colin Colin > > _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. > > -- 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.

