ข้อความแฟลชคืออะไร
ข้อความแฟลชเป็นวิธีการสื่อสารข้อมูลกับผู้ใช้แอปพลิเคชัน Rails ของคุณ เพื่อให้พวกเขาทราบว่าเกิดอะไรขึ้นจากการกระทำของพวกเขา
ข้อความตัวอย่าง :
- “เปลี่ยนรหัสผ่านอย่างถูกต้อง” (ยืนยัน)
- “ไม่พบผู้ใช้” (ข้อผิดพลาด)
คุณตั้งค่าข้อความแฟลชเหล่านี้ในคอนโทรลเลอร์ของคุณ จากนั้นจึงแสดงผลในมุมมองของคุณ ผู้ใช้ของคุณสามารถดำเนินการตามนั้นได้
มาเรียนรู้กันว่ามันทำงานอย่างไร!
วิธีใช้ข้อความแฟลช
คุณสามารถทำงานกับข้อความแจ้งเตือนเหล่านี้ได้โดยใช้ flash
วิธีการช่วยเหลือ
มันทำงานเหมือนแฮชทับทิมมาก
วัตถุแฟลชมีเมธอดเช่น keys
, any?
หรือ each
&คุณสามารถเข้าถึงข้อความเฉพาะด้วย []
.
คุณสามารถตั้งค่าข้อความแฟลชประเภทใดได้บ้าง
โดยค่าเริ่มต้น คุณมี :
- ประกาศ
- แจ้งเตือน
นี่คือตัวอย่างการใช้งาน :
flash.alert = "User not found."
หรือถ้าคุณต้องการ :
flash[:alert] = "User not found."
(แค่สไตล์ที่แตกต่าง)
คุณสามารถใช้โค้ดนี้ในการดำเนินการของตัวควบคุมได้ เช่น index
, create
, new
, ฯลฯ
ทางนี้อีกทางหนึ่ง :
redirect_to :books_path, notice: "Book not found"
วิธีนี้ทำให้คุณสามารถเปลี่ยนเส้นทางและสร้างข้อความแฟลชได้ในขั้นตอนเดียว
เยี่ยมเลย!
การแจ้งเตือนเทียบกับการแจ้งเตือน
เท่าที่ฉันเข้าใจ ไม่สำคัญหรอกว่าคุณจะใช้ alert
หรือ notice
.
ใช้อันที่ให้ความรู้สึกเป็นธรรมชาติกับสถานการณ์ของคุณมากขึ้น
ฉันชอบคิดเกี่ยวกับ alert
เป็นข้อความแสดงข้อผิดพลาด ¬ice
เป็นข้อความยืนยัน
การแยกส่วนจะช่วยให้คุณจัดรูปแบบได้แตกต่างออกไป
ตัวอย่างเช่น :
คุณสามารถแสดงการแจ้งเตือนเป็นสีแดง &ประกาศเป็นสีเขียว
คุณยังสามารถสร้างประเภทแฟลชของคุณเองได้โดยใช้ add_flash_types
วิธีการควบคุม
ถูกใจสิ่งนี้ :
class ApplicationController add_flash_types :info, :error, :warning end
ฉันชอบทำสิ่งต่าง ๆ ให้เรียบง่าย ฉันจึงยึดติดกับประเภทในตัว 🙂
การแสดงข้อความแฟลช
ข้อความแฟลชจะไม่แสดงโดยอัตโนมัติ
คุณต้องแสดงผลภายในมุมมองใดมุมมองหนึ่งเพื่อให้ผู้ใช้มองเห็นได้
ลองเพิ่มสิ่งนี้ลงในเลย์เอาต์แอปพลิเคชันของคุณ
นี่คือตัวอย่างโค้ด :
<% flash.each do |type, msg| %> <%= msg %> <% end %>
วางไว้ที่ใดก็ตามที่คุณต้องการให้แสดงการแจ้งเตือน ปกติจะอยู่ด้านบนสุดของหน้า ใต้แถบเมนู
จำไว้ :
เมื่อคุณแสดงข้อความแล้ว ข้อความนั้นจะถูกลบออกจาก flash
จึงไม่ปรากฏอีก
การจัดรูปแบบการแจ้งเตือนและข้อความแจ้งเตือนของคุณ
ข้อความ Flash ไม่มีการออกแบบหรือรูปแบบในตัว
วิธีแก้ปัญหา?
หากคุณใช้ Bootstrap คุณสามารถใช้ "alert alert-info"
คลาส CSS เพื่อทำให้ข้อความแฟลชดูดี
ตัวอย่าง :
<% flash.each do |type, msg| %> <%= msg %> <% end %>
หน้าตาเป็นแบบนี้ :
หากคุณไม่ได้ใช้ Bootstrap คุณสามารถเขียน CSS ของคุณเองเพื่อให้มีลักษณะตามที่คุณต้องการ
ข้อความแฟลชจะแสดงผลเมื่อใด
ข้อความ Flash จะถูกลบออกเฉพาะในการดำเนินการควบคุมครั้งต่อไปของคุณ หลังจากที่แสดงข้อความเหล่านั้น
ผลกระทบ :
- หากคุณ
redirect_to
แล้วเรนเดอร์flash
ข้อความที่ดี - หากคุณ
redirect_to
&อย่าแสดงข้อความ ข้อความจะติดอยู่ที่flash
แฮช - หากคุณ
render
ในการดำเนินการเดียวกันกับที่คุณกำลังตั้งค่าflash
ข้อความว่าflash
ข้อความจะพร้อมใช้งานแต่จะไม่ถูกลบ ดังนั้นข้อความจะยังคงอยู่ &อาจแสดงสองครั้ง
ดังนั้น…
จะทำอย่างไรถ้าคุณต้องการตั้งค่า ข้อความแฟลชสำหรับการทำงานปัจจุบัน ?
นั่นคือที่ที่ flash.now
เข้ามาเลย!
นี่คือตัวอย่าง :
def index @books = Book.all flash.now[:notice] = "We have exactly #{@books.size} books available." end
สิ่งนี้จะแสดง index
มุมมอง
notice
ข้อความจะแสดงและลบออกจาก flash
ดังนั้นจะไม่แสดงซ้ำ 2 ครั้ง
กล่าวอีกนัยหนึ่ง :
คุณจำเป็นต้องใช้ flash.now
. เท่านั้น หากคุณกำลังจะ render
แทนที่จะเปลี่ยนเส้นทาง
สรุป
คุณได้เรียนรู้เกี่ยวกับข้อความแฟลชใน Rails และวิธีใช้งานอย่างถูกต้องแล้ว!
อย่างไรก็ตาม ข้อความแฟลชไม่เหมือนกับข้อผิดพลาดในการตรวจสอบความถูกต้อง การตรวจสอบจะเชื่อมโยงกับอ็อบเจ็กต์ model และคุณเข้าถึงข้อความตรวจสอบเหล่านี้ด้วย errors
เมธอด เช่น @user.errors
.
ตอนนี้ถึงตาคุณแล้วที่จะนำสิ่งนี้ไปปฏิบัติโดยการเขียนโค้ดบางส่วน
ขอบคุณสำหรับการอ่าน!