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

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

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