Я понимаю, что это год, но ради будущих гуглеров ...
Вместо встраивания в SQL, вам может быть лучше с именованной областью действия:
scope :not_english, where("english != 'English'") # Rails 3
или
named_scope :not_english, :conditions => "english != 'English'" # Rails 2
, что позволит вам:
options_for_select(Language.not_english.collect {|lang| [lang.english, lang.id]})
Это легче для чтения, более выразительное и не зависит от некоторого магического идентификатора базы данных.
Приветствия!
(PS: Кроме того, вы можете подумать об обновлении схемы, чтобы имя столбца db не путалось с его значением. Могу ли я предложить language.name, а не language.english?)