Forum: Ruby on Rails Using variables within a string - The function doesn't pass

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
softwareengineer 99 (Guest)
on 2006-01-26 10:51
(Received via mailing list)
Hello everyone,

  As a beginner to ROR, I am very confused regarding why the following
is happening.

  If my function is defined as

      def self.home_categories (portal_id)
          find(:all, :conditions => [ "portal_id=?", portal_id ] )
      end

  the following doesn't works (the database is queried with a value of
0.

      portal_id=1
      @categories = Category.home_categories (:portal_id)

  but this works

      @categories = Category.home_categories (1)


  However,

  If my function is defined as

      def self.home_categories (portal_id)
          find(:all, :conditions => "portal_id=#{portal_id}" )
      end

  then the following works

      portal_id=1
      @categories = Category.home_categories (portal_id)

  and the following also works:

      @categories = Category.home_categories (1)


  Why is that happening? Any pointers / explanation is appreciated.

  Thanks
  Frank

  P.S. Thank you Ezra for your assistance with my earlier question and
clarifying how I accidentally hijacked the thread. My sincerest
apologies to the list members and the thread owner for the accidental
hijack.
Mikkel B. (Guest)
on 2006-01-26 13:38
softwareengineer 99 wrote:
> Hello everyone,
>
>
>       portal_id=1
>       @categories = Category.home_categories (:portal_id)

portal_id is a variable, :portal_id is a symbol...they dont mix...

use:

       portal_id=1
       @categories = Category.home_categories (portal_id)

Mikkel
Eric G. (Guest)
on 2006-02-24 19:45
(Received via mailing list)
Hi,

 From what I can see of your code I think there is just a small typo.
You are using a symbol instead of a var.

portal_id=1
    @categories = Category.home_categories (:portal_id)

should be:

portal_id=1
    @categories = Category.home_categories (portal_id)

That's all that I can see. Other than that it should work.

Eric
softwareengineer 99 (Guest)
on 2006-02-24 19:45
(Received via mailing list)
Thanks Eric,

  That totally works.

  I thought I had read in the "Agile ROR" book to use symbols but
obviously I was wrong.

  Long day for me.

  Thanks for the rescue again.

  Frank
This topic is locked and can not be replied to.