2016-05-01 2 views
1

У меня есть форма, в которой есть текстовое поле для имени, на нем есть подтверждение присутствия. Когда пользователь забывает вводить имя, текстовое поле становится красным, все в порядке, но я хотел бы немного очистить свой взгляд, но я не уверен, как это сделать? Может быть, помощник? Может быть, метод? Я немного новичок в рельсах, и я ищу некоторые советы по этой проблеме. Вот мой код для представления.Перемещение ошибок из представления. -Rails

VIEW

<% if f.object.errors[:name].present? %> 
    <%= f.text_field :name, :class => 'alert' %> 
    <div class="validation"> 
     <% f.object.errors[:name].each do |error| %> 
     <%= error %> 
     <% end %> 
    </div> 
     <% else %> 
     <%= f.text_field :name %> 
     <% end %> 

Это довольно стандартный, если еще Постулаты, но я думаю, что его слишком уродлив для просмотра.

ответ

0

Вы можете добиться аналогичного результата с помощью проверки модели. Если вам нужна проверка наличия на модели, тогда она сообщит пользователю, что поле не может быть пустым. Это позволит вам сообщить пользователю, что они не могут оставить поле формы пустым без ручной кодировки этого в ваших представлениях.

Пример: Post Модель - приложение/модель/post.rb

class Post < ActiveRecord::Base 
    validates :title, :presence => true 
    validates :body, :presence => true 
end 

Если теперь пользователь пытается отправить форму либо Название или орган пусто, то они попросят повторно отправить форму, с маленький подсказка подсказки «Пожалуйста, заполните это поле».

Для достижения этой цели не требуется никакой логики, просто подтвердите наличие в вашей модели.

+0

Ссылка на скриншот подсказки инструмента -! [Ошибка проверки] (http://i.imgur.com/A9PyYuD.png) –