渲染设计编辑密码表单

Len*_*onR 5 devise ruby-on-rails-3

我正在尝试在另一个视图中呈现Devise编辑密码表单,因为我不想复制编辑pw逻辑.

我尝试了以下(生成Devise视图后):

<%= render 'devise/passwords/edit' %>
<%= render 'devise/passwords/form' %>
Run Code Online (Sandbox Code Playgroud)

渲染上的其他一些变体似乎都给了我同样的错误:

"foo中的ActionView :: MissingTemplate #foo缺少部分设计/密码/编辑......"

这种变化:

  <%= render :file => 'devise/passwords/edit.html.erb' %>
Run Code Online (Sandbox Code Playgroud)

给了我一些希望,但以下错误:

"##:0x47ef0e0>"的未定义局部变量或方法"资源"

围绕这条线:

<%= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f| %>
Run Code Online (Sandbox Code Playgroud)

这让我觉得我很接近(因为那是我想要的表单中的代码)但是该模板不应该使用隐藏的Devise控制器中的正确逻辑吗?或者我是否需要在路线文件中执行某些操作才能使其生效?

我离开了吗?

Zab*_*bba 7

试试这个:

<%= render :template => 'devise/passwords/edit', 
                        :locals => { 
                          :resource => my_user_model_variable, 
                          :resource_name => my_user_model_name } %>
Run Code Online (Sandbox Code Playgroud)

哪里:

  • my_user_model_variable 可能 current_user
  • my_user_model_name 可能 "User"