Я использую самоцвет для разработки процедур sign_in / sign_out.
Я создал файлы представлений из устройства, используя rails g devise views
Я увидел файл devise / session / new.html.erb, который содержал форму для sign_in.
Я создал другой файл devise / session / _form.html.erb и сделал <%= render 'form' %>
в файле new.html.erb, и это сработало очень хорошо.
Теперь я хотел включить эту форму с другого контроллера. Поэтому в контроллере с именем 'main' (в частности, на странице просмотра) 'mains / index.html.erb' я включил <%= render 'devise/sessions/form' %>
файл. Кажется, что включение работает нормально, но я получаю следующую ошибку.
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:
Кажется, что часть form_for (resource, ...) вызывает проблему (которая работает нормально, если я нахожусь на оригинальной странице devise sign_in ... Как я могу решить эту проблему путями?
Лично я предпочитаю использовать функцию 'render' для включения формы, а не писать встроенные html-коды.
Должен ли я указывать что-то (ресурс) внутри «основного» контроллера?
Буду признателен за вашу помощь. Спасибо.