Как добавить сообщение для проверки в модели? - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть форма с текстовым полем, которое должно быть числом от 5 и выше.

Проблема: Мне кажется, что сообщение не появляется, если его нетпроверено

Я пытался:

validates :price, :numericality => {:only_integer => true, greater_than_or_equal_to: 5, message: "should happen once per year" }

И это (я знаю, что это не минимальный номер, а просто проверка функции сообщенияЯ видел в другом сообщении ... до сих пор нет сообщения, если я использую нецелые символы.

 validates :price, format: { with: /\A\d+\z/, message: "Integer only. No sign allowed." }

Основной макет имеет:

<% flash.each do |name, msg| %>
    <% if msg.is_a?(String) %>
      <div class="alert alert-<%= name.to_s == 'notice' ? 'success' : 'danger' %> alert-dismissable">
        <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
        <%= content_tag :div, msg, :id => "flash_#{name}" %>
      </div>
      <% end %>
    <% end %>

Как можноУ меня так, когда запись в поле недействительна, появляется сообщение?

решено: вроде ...

Просто нужно добавить:

<% if @listing_video.errors.any? %>
    <ul>
      <% @listing_video.errors.full_messages.each do |msg| %>
        <%= msg %>
      <% end %>
    </ul>
    <% end %>

К моей форме.

Он не всплывает как баннер, но скоро выяснит это с помощью начальной загрузки и / или CSS

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

Ответы [ 2 ]

0 голосов
/ 02 января 2019

решено:

Просто нужно добавить:

<% if @listing_video.errors.any? %>
    <ul>
      <% @listing_video.errors.full_messages.each do |msg| %>
        <%= msg %>
      <% end %>
    </ul>
    <% end %>

к моей форме.

Это создает ошибку для валидаций надполе ввода текста - это то, что я хочу.

0 голосов
/ 31 декабря 2018

Это может помочь.Простая проверка на сумму

validate :amount_valid?

 def amount_valid?
  errors.add(:amount, "cant be zero") if self.amount.zero?
  errors.add(:amount, "cant be negative") if self.amount.negative?
end

отображения ошибок в пользовательском интерфейсе после проверки, если ошибки присутствуют:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...