I wanted to be able to clone fields from one record into a new record,
so I added a select box to allow the user to select the record from
which (s)he wanted to clone (using AJAX to dynamically update the view
when (s)he selects such a record).  In my #new action, I check to see
if the :clone_from parameter points to a valid record and if it does,
I set my @record parameter to that record (created via
old_record.clone).  If it doesn't point to a valid record, I set
@record to Record.new.

Here's my problem...

in my view, I have

form_for record do |f|
...
end

which generates a RESTful call to my #create action when @record was
empty (i.e. filled in from Record.new), but generates a RESTful call
to my #update action when @record is a clone of the old record.

Ahhhh.... this is why this mailing list is so helpful.... I start to
write the email, I get to the part where I write "is a clone of the
old record", and I think to myself, "Wait a minute!  Did I really call
#clone when I went down that path?".... checked the code... found out
that I didn't... called #clone... problem solved.

Gee, thanks folks!!!  You're the greatest!!! (especially those of you
who kept reading this far :-))

OK, now I've updated the subject line to reflect my (new) real question...
When I first discovered this behavior, I thought to myself, "I should
write a test case that demonstrates this bug, fix the bug, and show
that the test case now passes".

When I tried to write the functional test that demonstrated this
(issue a #get call to the :new action with the :clone_from parameter
set, issue a #post :create call with the modified clone), the test
worked perfectly.  I had to look at the logs or HTML source to see
that I was calling #update instead of #create.

How could I have tested this?  Is it even worth writing a test case to
demonstrate the incorrect operation of code that simply had a typo in
it?

What do you think?

--wpd

--~--~---------~--~----~------------~-------~--~----~
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 rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to