Не делай этого. Это некрасиво и не весело для тебя. Кроме того, бесполезно пытаться поместить операторы if или что-либо, кроме значений хеш-функции, в объявление хеш-функции. Как насчет помощника?
Код помощника (не проверено):
def book_select(f)
options = {}
options['Harry Potter'] = 1 unless @a == 1
options['Lord of the Rings'] = 2 unless @b == 2
f.select :book_id, options
end
Посмотреть код:
<%= book_select(f) %>