з: http://ruby-doc.org/core/classes/String.html#M000809
str.intern => symbol
str.to_sym => symbol
Повертає відповідний символ str, створюючи символ, якщо він раніше не існував. Див Symbol#id2name.
"Koala".intern #=> :Koala
s = 'cat'.to_sym #=> :cat
s == :cat #=> true
s = '@cat'.to_sym #=> :@cat
s == :@cat #=> true
Це також можна використовувати для створення символів, які неможливо представити за допомогою :xxxпозначень.
'cat and dog'.to_sym #=> :"cat and dog"
Але для вашого прикладу ...
"Book Author Title".gsub(/\s+/, "_").downcase.to_sym
повинен йти ;)