Doubt with symbols in Rails

I was trying to write a wrapper for number_to_currency to return currency in pounds. I used a helper class to do this.

def number_to_pounds(amt)   number_to_currency(amt, :unit => "£") end

This works fine, but I am trying to understand why I can't use a symbol to pass the values. I thought symbols were like pointers. (you now know I am a newbie).

def number_to_pounds(:amt)   number_to_currency(:amt, :unit => "£") end

Note - amt is not the name of the variable my view works on, it is price, so I tried the symbol :price, it wouldn't work either. I am googling to learn about the symbols. Any link for that would be really helpful.

Thanks

I was trying to write a wrapper for number_to_currency to return currency in pounds. I used a helper class to do this.

def number_to_pounds(amt) number_to_currency(amt, :unit => "£") end

This works fine, but I am trying to understand why I can't use a symbol to pass the values. I thought symbols were like pointers. (you now know I am a newbie).

A symbol is an interned string - :foo is a literal much like 'foo', or 3: it clearly does not make sense to declare a function with the first argument being any sort of literal http://blog.hasmanythrough.com/2008/4/19/symbols-are-not-pretty-strings has some good stuff about symbols

Fred

thanks.. I did read a lot about the difference between symbols and strings. I have another question here regarding the internal workings of rails and how it uses symbols. I am following the pragmatic programmers book on rails developing the depot application. Here I declare a scaffold line_item with two integers to hold the relationship between the product and the cart. In the cart controller- I use the symbol ':line_items', no where did I declare or even tell the universe there would be some symbol to denote a line_item. Is this how rails works? a default symbol for models that could be used to store the objects for that model to be used in controllers?? If someone could link me to a blog post explaining this rails character, I'll be really happy.

Thanks Arun

I am following the pragmatic programmers book on rails developing the depot application. Here I declare a scaffold line_item with two integers to hold the relationship between the product and the cart. In the cart controller- I use the symbol ':line_items', no where did I declare or even tell the universe there would be some symbol to denote a line_item. Is this how rails works? a default symbol for models that could be used to store the objects for that model to be used in controllers?? If someone could link me to a blog post explaining this rails character, I'll be really happy.

This isn't really about rails. :line_items is just a literal - you don't have to declare it, just as you don't have to declare the string "line_items": typing it is enough to bring it into existance. You might also want to read http://glu.ttono.us/articles/2005/08/19/understanding-ruby-symbols

Fred