Does :class_name for belongs_to have to be a string and why?

Seemingly, when I use a symbol, I get an ActiveRecord error stating
‘Can’t convert symbol into String.’ Why can’t I use a symbol here?
Possibly this is a deeper misunderstanding of symbols in general on my
part.

#ActiveRecord error
class Book < ActiveRecord::Base
belongs_to :author, :class_name => :Person, :foreign_key
=> :author_id
end

#works
class Book < ActiveRecord::Base
belongs_to :author, :class_name => “Person”, :foreign_key
=> :author_id
end

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.

On Dec 26, 3:46 pm, Xanothos [email protected] wrote:

Seemingly, when I use a symbol, I get an ActiveRecord error stating
‘Can’t convert symbol into String.’ Why can’t I use a symbol here?
Possibly this is a deeper misunderstanding of symbols in general on my
part.

Well symbols and strings are not interchangeable in general (and
glancing briefly at the source, activerecord calls various methods
only available on strings on the :class_name option).

Fred

=> :author_id
end

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.

… and you capitalised the symbol for “:Person”.

Shouldn’t the symbol be capitalized if it worked in this scenario?
The class name is capitalized, ie: class name = Person therefore: p =
Person.new. Why would the symbol be lowercase?

On Dec 26, 5:47 pm, Pale H. [email protected] wrote:

… and you capitalised the symbol for “:Person”.

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