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 [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
-~----------~----~----~----~------~----~------~--~---

Reply via email to