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