Страницы

Поиск по вопросам

понедельник, 6 мая 2019 г.

Rails не видит введенных в форме данных

У меня сразу несколько вопросов:
Добавил в Devise атрибуты name (string) и phone (integer). При отправке формы выдает ошибки "Name can't be blank" и "Phone can't be blank", хотя поля заполнены. Как заменить лэйблы (например, перевести на русский)? Когда меняю :name на :ФИО - все нормально, но когда меняю остальные - выдает ошибку.
Сама форма:
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :role => 'form'}) do |f| %>

Регистрация

<%= devise_error_messages! %>
<%= f.label :name %>
<%= f.text_field :name, autofocus: true %>
<%= f.label :email %>
<%= f.email_field :email %>
<%= f.label :phone %>
<%= f.text_field :phone %>
<%= f.label :password %> <%= f.password_field :password, class: 'form-control' %>
<%= f.label :password_confirmation %> <%= f.password_field :password_confirmation, class: 'form-control' %>
<%= f.submit 'Sign up', :class => 'button right' %> <% end %>


Ответ

Добавил в Devise атрибуты name (string) и phone (integer). При отправке формы выдает ошибки "Name can't be blank" и "Phone can't be blank", хотя поля заполнены.
Скорее всего, вы наступили на те же грабли, что и я когда-то, забыв про Strong Parameters.
Как заменить лэйблы (например перевести на русский)? Когда меняю :name на :ФИО - все нормально, но когда меняю остальные - выдает ошибку.
Разумеется, выдаёт. Надо 'ФИО', а не :ФИО и так далее. С двоеточия начинаются ключи, а вам надо задать конкретное строковое значение. Однако, если вы собираетесь именно переводить, то лучше сразу начинать использовать API интернационализации

Комментариев нет:

Отправить комментарий