#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 интернационализации.
Комментариев нет:
Отправить комментарий