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控制器中的正确逻辑吗?或者我是否需要在路线文件中执行某些操作才能使其生效?
我离开了吗?
试试这个:
<%= 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_usermy_user_model_name 可能 "User"