Używam klejnotu devise do procedur sign_in / sign_out.
Wygenerowałem pliki widoków z devise, używając rails g devise views
Zauważyłem, że istnieje plik devise / session / new.html.erb, który zawiera formularz do logowania.
Stworzyłem inny plik devise / session / _form.html.erb i zrobiłem to <%= render 'form' %>
w pliku new.html.erb i to wyszło bardzo dobrze.
Teraz chciałem dołączyć ten formularz z innego kontrolera. Tak więc w kontrolerze o nazwie „main” (konkretnie na stronie widoku) „main / index.html.erb” umieściłem <%= render 'devise/sessions/form' %>
plik. Wygląda na to, że włączenie działało dobrze, ale pojawia się następujący błąd.
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:
Wygląda na to, że część form_for (zasób, ...) jest przyczyną problemu (co działa dobrze, jeśli jestem na oryginalnej stronie devise sign_in ... Jak mogę rozwiązać ten problem w sposób railsowy?
Osobiście wolę używać funkcji „render”, aby dołączyć formularz, zamiast pisać wbudowane kody HTML.
Czy muszę określić coś (zasób) w „głównym” kontrolerze?
Będę wdzięczny za twoją pomoc. Dziękuję Ci.