Estoy usando una gema de diseño para los procedimientos de inicio de sesión / inicio de sesión.
Genere archivos de vistas desde el dispositivo, usando rails g devise views
Vi que había un archivo de idear / sessions / new.html.erb que contenía un formulario para sign_in.
Creé otro archivo idear / sessions / _form.html.erb y lo hice <%= render 'form' %>
dentro de un nuevo archivo.html.erb, y funcionó muy bien.
Ahora, quería incluir este formulario desde el controlador diferente. Entonces, en un controlador llamado 'main', (específicamente, dentro de la página de vista) 'mains / index.html.erb' incluí el <%= render 'devise/sessions/form' %>
archivo. Parece que la inclusión funcionó bien, pero recibo el siguiente error.
NameError in Mains#index
Showing /home/administrator/Ruby/site_v4_ruby/app/views/devise/sessions/_form.html.erb where line #1 raised:
undefined local variable or method `resource' for #<#<Class:0x007f1aa042d530>:0x007f1aa042b870>
Extracted source (around line #1):
1: <%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
2: <p><%= f.label :email %><br />
3: <%= f.text_field :email %></p>
4:
Parece que la parte form_for (recurso, ...) está causando el problema (que funciona bien si estoy en la página de inicio de sesión del dispositivo original ... ¿Cómo puedo resolver este problema en forma de rieles?
Personalmente prefiero usar la función 'render' para incluir el formulario, en lugar de escribir códigos html en línea.
¿Tengo que especificar algo (recurso) dentro del controlador 'principal'?
Apreciaré su ayuda. Gracias.