我目前有用户在localhost:3000/en/users/edit?
上编辑他们的个人资料
当他们编辑个人资料时,他们可能需要添加公司(Entreprise
)。
因此,我修改了编辑页面以接收entreprise/new.html.erb
的模式。
我认为现在我需要将@entreprise = current_user.entreprises.build
传递给Registration控制器(这是控制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)
但是模态根本没有打开。在检查器中签入时,模态中没有任何信息。没有错误记录
答案 0 :(得分:0)
我认为您需要在@enterprise
调用(调用super
)之前分配render :edit
变量,因为在渲染视图时,@enterprise
变量不是实际尚未分配。
答案 1 :(得分:0)
日志显示正在调用表单的组件。
was new.js.erb
文件在这里丢失了什么。
我在里面添加了$("#modal-window").html("<%= escape_javascript(render 'entreprises/form' %>")
。
现在,窗体可以正确加载。下一步是将记录保存到企业模型中,并且已全部设置。