Я использую драгоценный камень разработки для процедур sign_in / sign_out.
Я создал файлы представлений из devise, используя rails g devise views
Я видел, что есть файл devise / sessions / new.html.erb, который содержит форму для sign_in.
Я создал еще один файл devise / sessions / _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, ...) вызывает проблему (которая отлично работает, если я нахожусь на исходной странице sign_in разработки ... Как я могу решить эту проблему с помощью рельсов?
Я лично предпочитаю использовать функцию «рендеринга» для включения формы, а не писать встроенные HTML-коды.
Нужно ли мне указывать что-то (ресурс) в «основном» контроллере?
Буду признателен за вашу помощь. Спасибо.