我试图在另一个视图中呈现设计编辑密码表单,因为我不想复制编辑pw逻辑。
我尝试了以下操作(在生成了设计视图之后):
<%= render 'devise/passwords/edit' %>
<%= render 'devise/passwords/form' %>
和其他一些渲染的变化,似乎都给我同样的错误:
"ActionView::MissingTemplate in foo#foo缺少部分设计/密码/编辑…"
这个变异:
<%= render :file => 'devise/passwords/edit.html.erb' %>
给了我一些希望,但是下面的错误:
"未定义的局部变量或方法' resource' for #<#:0x47ef0e0>"
<%= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f| %>
这让我觉得我很接近(因为这是代码从我想要的形式),但不应该模板使用正确的逻辑从隐藏的设计控制器?还是我需要在路由文件中做些什么来让它工作?
我错了吗?
试试这个:
<%= render :template => 'devise/passwords/edit',
:locals => {
:resource => my_user_model_variable,
:resource_name => my_user_model_name } %>
地点:
-
my_user_model_variable
可以是current_user
-
my_user_model_name
可以是"User"