Re: using params in a comparison

Robert Walker
Wed, 28 May 2008 03:04:59 -0000

Just to add a bit of clarity: you should also keep in mind the Ruby
idioms for object identity vs. object equality. This one still trips
me up from time-to-time coming from Java to Ruby:

The == and .eql? methods in Ruby compare object equality (typically)
where as the == operator in Java compares object identity (do these
variables reference the same object?). Typically .equal? is used to
compare object identity in Ruby.

-------------------------------------
>> s1 = "Rubies are red"
>> s2 = "Rubies are red"
>> s1 == s2    => true
>> s1.eql? s2    => true
>> s1.equal? s2    => false
-------------------------------------
>> s1 = "Rubies are red"
>> s2 = s1
>> s1 == s2    => true
>> s1.eql? s2    => true
>> s1.equal? s2    => true
-------------------------------------

Notice in the first example the two string have the same value (the
same sequence of characters), but do not have the same identity. In
the second case both s1 and s2 refer to the same string and do have
the same identity.

On May 27, 10:04 pm, Dave Lynam
<dly...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:
> exactly what i was looking for.  thanks.
>
> On May 27, 6:56 pm, Alex Wayne
<rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>
> wrote:
>
> > Dave Lynam wrote:
> > > Other is a column in the database.  So photo.other is the value
in
> > > this column and I only want to display the photos where the
> > > params[:id] matches this photo.other value.
>
> > > On May 27, 6:29 pm, "Ryan Bigg (Radar)"
<radarliste...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> >   123 == "123" #=> false
>
> > The params hash contains strings.  A database column stored as an
> > integer, will return an integer.  And an integer will not equate to a
> > string.
>
> >   photo.other == params[:id].to_i
>
> > or
>
> >   photo.other.to_s == params[:id]
> > --
> > Posted viahttp://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
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@googlegroups.com