Hey Everyone, I think this should be an easy one, and the solution right now was to use two lines instead of one, but I am curious why this syntax isn''t working. Assignment.find(:all).delete_if {|assignment| assignment.assignment_name == "Lunch" || assignment.assignment_name ="Lunch"} This will return the array without the "Lunch", but with the break still in tact, so I tried again: Assignment.find(:all).delete_if {|assignment| assignment.assignment_name == ("Lunch" || "Break")} Nope! No good, once again, lunch is gone, but break is still in the array. tried to do the same thing with select as well . . . no dice. I have this working right now with two lines of code, but I am really curious where my syntax is going wrong. More a question of interest then anything else. Thanks! --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Frederick Cheung
2008-Dec-11 16:09 UTC
Re: Can someone explain what is wrong with my syntax?
On 11 Dec 2008, at 15:59, BushyMark wrote:> > Hey Everyone, I think this should be an easy one, and the solution > right now was to use two lines instead of one, but I am curious why > this syntax isn''t working. > > Assignment.find(:all).delete_if {|assignment| > assignment.assignment_name == "Lunch" || assignment.assignment_name => "Lunch"} > > This will return the array without the "Lunch", but with the break > still in tact, so I tried again: > > Assignment.find(:all).delete_if {|assignment| > assignment.assignment_name == ("Lunch" || "Break")} > > Nope! No good, once again, lunch is gone, but break is still in the > array. >That doesn''t do what you think it does. First it evaluates ("Lunch" || "Break") which evaluates to "Lunch", so that just does Assignment.find(:all).delete_if {|assignment| assignment.assignment_name == "Lunch"} you would need Assignment.find(:all).delete_if do |assignment| assignment.assignment_name == "Lunch" || assignment.assignment_name == "Break" end or Assignment.find(:all).delete_if do |assignment| ["Lunch", "Break"].include? assignment.assignment_name end Fred> tried to do the same thing with select as well . . . no dice. I have > this working right now with two lines of code, but I am really curious > where my syntax is going wrong. More a question of interest then > anything else. > > Thanks! > > >--~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---