Подпишитесь на рассылку о самых интересных материалах в мире веб-разработки :)

Добавить поле в devise


(Владимир) #1

Привет! Делаю страницу редактирования зарегистрированного пользователя и хочу добавить редактирование имени. В модели пользователя есть поле name, которое я и вставил в форму edit.html.erb. Имя отображается, но если его изменить, то после сохранения все равно останется старым. Как быть?


(Сергей) #2

Чтобы вам помогли, кроме вопроса желательно приводить и код, как минимум вьюху и контроллер.


(Владимир) #3

Вьюха стандартная (edit.html.erb), добавил в нее поле:

<div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>

В контроллер (registration_controller.rb) добавил только:

def accoutn_update_params
    params.require(:user).permit(:name, :email, :password, :password_confirmation, :current_password)
  end

(Сергей) #4

А что в логах консоли приложения? Если что в названии метода accoutn_update_params опечатка.


(Сергей) #5

Вообще-то у device собственные контроллеры, которые можно переопределять при необходимости.
И есть такакая штука

def configure_permitted_parameters
      devise_parameter_sanitizer.permit(:account_update, keys:
          [:avatar, :crop_x, :crop_y, :crop_w, :crop_h, :first_name, :last_name, :phone, :city, :tab])
    end

(Владимир) #6

Действительно проблема была в очепятке, заработало. Спасибо!