Совершенно верно сохранить это в модели.Модели должны нести основную ответственность за обеспечение правильности введенных в них данных.
В вашем конкретном случае вы можете использовать валидатор :uniqueness
с переданной ему областью действия.В основном ваша проверка будет гарантировать, что языки уникальны в контексте определенного поста
Должно работать следующее:
validates :language, :inclusion => { :in => LANGUAGES },
:uniqueness => { :scope => :post_id }
Если вы предпочитаете синтаксис стиля Rails 2, вы можете использовать:
validates_uniqueness_of :language, :scope => :post_id