RoR => Странное подтверждение сообщения - PullRequest
1 голос
/ 07 декабря 2010

Я новичок в рельсах, сегодня я сделал свое первое веб-приложение, используя валидацию, я просто поместил следующие строки в модель:

class ClientWorkout < ActiveRecord::Base

  validates_numericality_of :paid_amount
  validates_presence_of :client_name

end

Это часть вида:

<% form_for(@client_workout) do |f| %>
  <%= f.error_messages %>
      etc etc

Все работает отлично, и значение сохраняется в БД, в успешном случае <если происходит ошибка, вместо этого эта ошибка отображается в представлении следующим странным образом: </p>

{{count}} errors prohibited this {{model}} from being saved

There were problems with the following fields:
{{attribute}} {{message}}
{{attribute}} {{message}}

(Пример показывает, что происходит, когда 2 параметра формы неправильны, но это происходит в каждом случае)
Не удалось заменить «count, model, attribute and message» на реальное значение.Кто-нибудь может понять, что произошло?Я использую Ror 2.3.8 и рельсы 1.8.7

Ответы [ 2 ]

1 голос
/ 07 декабря 2010

В Rails появилась встроенная интернационализация еще в 2.3. Ваша проблема - известная ошибка с некоторыми комбинациями рельсов и жемчужиной i18n. Если у вас i18n gem версии 0.5.0, попробуйте понизить версию до 0.4.2. Если вы используете системные гемы:

sudo gem uninstall i18n
sudo gem install i18n -v 0.4.2

Если вы используете RVM для управления своими драгоценными камнями, вам не нужна команда sudo.

0 голосов
/ 22 мая 2012

Если вы не заинтересованы в изменении версии i18n, вы можете сделать следующее: Добавьте приведенный ниже код в config/locales/en.ym

Если en: уже доступен, скопируйте и вставьте из ActiveRecord

После этого остановите сервер и запустите снова, чтобы правильно отображались сообщения об ошибках ...

en:
  activerecord: 
    errors: 
      full_messages: 
        format: "%{attribute} %{message}"
      messages:
        inclusion: "is not included in the list"
        exclusion: "is reserved"
        invalid: "is invalid"
        confirmation: "doesn't match %{attribute}"
        accepted: "must be accepted"
        empty: "can't be empty"
        blank: "can't be blank"
        too_long: "is too long (maximum is %{count} characters)"
        too_short: "is too short (minimum is %{count} characters)"
        wrong_length: "is the wrong length (should be %{count} characters)"
        not_a_number: "is not a number"
        not_an_integer: "must be an integer"
        greater_than: "must be greater than %{count}"
        greater_than_or_equal_to: "must be greater than or equal to %{count}"
        equal_to: "must be equal to %{count}"
        less_than: "must be less than %{count}"
        less_than_or_equal_to: "must be less than or equal to %{count}"
        other_than: "must be other than %{count}"
        odd: "must be odd"
        even: "must be even"
      template:
        header:
          one:    "1 error prohibited this %{model} from being saved"
          other:  "%{count} errors prohibited this %{model} from being saved
...