Настройте сообщение об ошибке с помощью simple_form - PullRequest
7 голосов
/ 27 апреля 2011

Я использую гем simple_form.Я хочу настроить сообщение об ошибке, отображаемое при сбое проверки пользователем.Как мне это сделать?

Ответы [ 3 ]

16 голосов
/ 27 апреля 2011
  1. Вы можете объявить содержание сообщение об ошибке в вашей модели:

    validates_length_of :name, :minimum => 5, :message => "blah blah blah"
    
  2. Вы можете установить id или class для вашего тег ошибки:

    <%= f.input :name, :error_html => { :id => "name_error"} %> 
    

    Тогда вы можете использовать CSS для стиля.

  3. И вы можете использовать

    <%= f.error :name, :id => "name_error" %>
    

    и вы получите

    <span class="error" id="name_error">is too short (minimum is 5 characters)</span>
    
5 голосов
/ 27 апреля 2011

Я не знаю, отличается ли он от простых камней.

Для изменения содержания сообщений об ошибках вы можете использовать атрибут :message в модели.

class User < ActiveRecord::Base
  validates :email, {:presence => true, :message => "is not filled up."}
end

Теперь сообщение проверки будет Email is not filled up. Если вы хотите, чтобы имя поля также было изменено (Email на E-mail address как-то так), то теперь подход состоит в том, чтобы определить его в locales.rb файле, подобном этому

# config/locales/en.yml
en:
  activerecord:
    attributes:
      user:
        email: "E-mail address"

Подробнее о locales см. ссылка . Другой подход заключается в определении в модели гуманизированных атрибутов, таких как:

class User < ActiveRecord::Base
  validates :email, {:presence => true, :message => "is not filled up."}
  HUMANIZED_ATTRIBUTES = {
    :email => "E-mail address",
    ...(other fields and their humanized names)
    ...
  }

  def self.human_attribute_name(attr, options={})
    HUMANIZED_ATTRIBUTES[attr.to_sym] || super
  end

end

Для настройки стиля сообщения проверки нам нужно отредактировать стиль для #errorExplanation и .fieldWithErrors в таблице стилей scaffold.css.

3 голосов
/ 27 апреля 2011

Вы можете легко изменить сообщение об ошибке по умолчанию, которое появляется в файле перевода, который находится в config/locales/simple_form.en.yml.

В конкретном инициализаторе config/initializers/simple_form.rb вы можете отменить параметры по умолчанию при создании html.

Надеюсь, это поможет.

Для полноты я хотел бы добавить, что проще начать с formtastic, поскольку он имеет макет по умолчанию. Мне очень нравится simple_form, но он не предлагает никакого форматирования из коробки, но это их намерение. С Formtastic очень трудно (невозможно) изменить сгенерированный html, а с помощью simple_form вы можете полностью сформировать сгенерированный html по своему вкусу. Это особенно полезно, если у вас есть дизайнер, и формы, которые вы генерируете, должны генерировать тот же HTML. Так что, если вы только начинаете, formtastic даст вам более привлекательные результаты быстрее. Также обратите внимание, что переключаться довольно просто, поскольку синтаксис практически идентичен.

...