Страницы

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

понедельник, 24 февраля 2020 г.

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

#ruby_on_rails #devise


У меня сразу несколько вопросов:


Добавил в 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 %>


Ответы

Ответ 1



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

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

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