ฉันใช้อัญมณีประดิษฐ์สำหรับกระบวนการ sign_in / sign_out
ฉันสร้างไฟล์มุมมองจากการประดิษฐ์โดยใช้ rails g devise views
ฉันเห็นว่ามีไฟล์รุ่น / เซสชัน / new.html.erb ซึ่งมีแบบฟอร์มสำหรับลงชื่อเข้าใช้
ฉันสร้างไฟล์อื่นอีกครั้งประดิษฐ์ / 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 ประดิษฐ์ ... ฉันจะแก้ไขปัญหานี้ในลักษณะทางรถไฟได้อย่างไร?
ฉันเองชอบใช้ฟังก์ชั่น 'เรนเดอร์' เพื่อรวมฟอร์มแทนที่จะเขียนโค้ด html แบบอินไลน์
ฉันต้องระบุบางสิ่ง (ทรัพยากร) ภายในตัวควบคุม 'หลัก' หรือไม่
ฉันจะขอขอบคุณสำหรับความช่วยเหลือของคุณ ขอบคุณ.