2011-05-06 16 views
5

Estoy tratando de presentar el formulario Editar contraseña en otra vista porque no quiero duplicar la lógica de edición de pw.Renderizar el formulario Editar contraseña con contraseña

He intentado lo siguiente (después de generar las vistas Idear):

<%= render 'devise/passwords/edit' %> 
<%= render 'devise/passwords/form' %> 

y un número de otras variaciones de render que todos me parecen dar el mismo error:

"ActionView: : MissingTemplate en foo foo # Missing parcial legado/contraseñas/editar ..."

Esta variación:

<%= render :file => 'devise/passwords/edit.html.erb' %> 

me dio algo de esperanza, pero el siguiente error:

"variable local o un método` recurso' para # < #: 0x47ef0e0>"

alrededor de esta línea:

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

Eso hace me parece que estoy cerca (ya que es el código de la forma que quiero) pero ¿esa plantilla no debería estar usando la lógica correcta del controlador oculto Devise? ¿O necesito hacer algo en el archivo de rutas para que esto funcione?

¿Estoy muy lejos?

Respuesta

7

Prueba esto:

<%= render :template => 'devise/passwords/edit', 
         :locals => { 
          :resource => my_user_model_variable, 
          :resource_name => my_user_model_name } %> 

Dónde:

  • my_user_model_variable podría ser current_user
  • my_user_model_name podría ser
+1

Gracias por su respuesta. El uso de "usuario" en lugar de "Usuario" me llevó a un nuevo mensaje de error: método indefinido 'devise_error_messages! ' para # <# : 0x4b44fd0> – LennonR

+0

Incluye el archivo 'devise_helper.rb' para arreglar ese (nuevo) problema; o elimine esa llamada y use su propio informe de errores. Y como mi respuesta resolvió tu problema, ¡puedes aceptarlo! – Zabba

+0

Gracias que funcionó. Una última pregunta. Cuando el formulario se envía con errores, redirige a "/ users" en lugar de al lugar donde presenté el formulario. Y al aceptar un cambio de contraseña, lo redirige a la página de índice de la aplicación. ¿Cómo controlaría estos redireccionamientos? – LennonR

Cuestiones relacionadas