Я очень плохо знаком с рельсами, и мне интересно, что лучший способ сделать это:
У меня есть контроллер, создающий запись в базе данных.
Если конкретная ошибка проверкипроисходит, я хочу установить флаг, и я не вижу хорошего способа сделать это с помощью шаблонов рельсов, с которыми я знаком.
Проверка моделей, которую я хочу обнаружить:
validates_uniqueness_of :title
Мой контроллер делает это:
fcs = Entity.create(:title => text)
Когда вышеупомянутая ошибка не удается, у меня есть коллекция ошибок ActiveModel для работы.
Как мне надежно установить флаг впрограммно указать, что заголовок был взят?
До сих пор я рассмотрел
fcs.errors.messages.has_key?(:title)
Но это вернет истину, если заголовок потерпел неудачу по какой-то другой причине.Поэтому мне нужно что-то более похожее на:
fcs.errors.messages[:title]==["has already been taken"]
Но это будет головной болью при обслуживании и будет также сломана различными локалями ...
Так кто-нибудь знает, как это сделатьс RoR?
Спасибо за любой совет
edit: Пример использования предложенного флага "is_title_duplicated":
if(! fcs.errors.empty?)
json['success']=false
json['errors']=fcs.errors.full_messages
json['title_was_duplicate'] = is_title_duplicated
render :json => json
...