Изменение метода редактирования Devise RegistrationsController - PullRequest
0 голосов
/ 12 июня 2019

У меня есть пользователи, которые редактируют свой профиль на localhost:3000/en/users/edit?. Когда они редактируют свой профиль, им может понадобиться добавить компанию (Entreprise).

Так что я изменяю страницу редактирования, чтобы получить модальное значение entreprise/new.html.erb.

Я думаю, теперь мне нужно передать @entreprise = current_user.entreprises.build в контроллер регистрации (который управляет страницей user/edit.html.erb.

class RegistrationsController < Devise::RegistrationsController
  protected
 def edit
    super
    @entreprise = current_user.entreprises.build
  end

...
end

ниже. Я перечислил все параметры для Entreprise.new

У меня в маршрутах есть следующее:

devise_for :users, controllers: {registrations: "registrations", confirmations: "confirmations", omniauth_callbacks: "omniauth_callbacks"}, skip: :omniauth_callbacks
devise_scope :user do
  get "settings", to: "devise/registrations#edit"
end

Когда я загружаю страницу редактирования и вызываю модал, страница загружается пустой. Я вижу консоль, обрабатывающую следующее:

Processing by RegistrationsController#edit as HTML
  Parameters: {"locale"=>"en"}
.......
  Rendering registrations/edit.html.erb within layouts/application
.....
  Rendered registrations/edit.html.erb within layouts/application (925.5ms)
.......
Processing by EntreprisesController#new as JS
  Parameters: {"locale"=>"en"}
 ......
  Rendering entreprises/new.html.erb within layouts/application
   ....

  Rendered entreprises/_form.html.erb (81.2ms)
  Rendered entreprises/new.html.erb within layouts/application (124.4ms)

Но модал вообще не открывается. При проверке в инспекторе, в модале нет информации. Нет записей об ошибках

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

Журналы показывают, что компоненты формы вызываются.Чего не хватало здесь, was new.js.erb файла.Внутри которого я добавил: $("#modal-window").html("<%= escape_javascript(render 'entreprises/form' %>").Теперь форма загружается правильно.Следующим шагом является сохранение записей в модели entreprise, и все готово.

0 голосов
/ 12 июня 2019

Я полагаю, что вам необходимо присвоить переменную @enterprise перед вашим вызовом super (который вызывает render :edit), потому что при рендеринге представления переменная @enterprise фактически еще не назначается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...