Rails: redirect_to with: error แต่แฟลช [: error] ว่างเปล่า


117

ฉันพยายามเปลี่ยนเส้นทางขณะตั้งค่าแฟลช [: error] (ราง 3.0.10)

ในมุมมองของฉันฉันมี

<p id="error"><%= flash[:error] %></p>
<p id="notice"><%= flash[:notice] %></p>

ถ้าฉันทำredirect_to show_path, :notice => "ok"มันก็ใช้ได้ดี แต่ถ้าฉันทำredirect_to show_path, :error => "error"มันก็ไม่ปรากฏขึ้น

ฉันจะขาดอะไรไป

คำตอบ:


238

ตามที่ระบุไว้ในRails APIเท่านั้น: การแจ้งเตือนและ: โดยค่าเริ่มต้นจะใช้เป็นค่าแฮชแฟลช หากคุณต้องการตั้งค่า: error คุณสามารถทำได้ดังนี้:

redirect_to show_path, flash: { error: "Insufficient rights!" }

3
เพื่อความชัดเจน: redirect_to(show_path, {:flash => { :error => "Insufficient rights!" }}). จำเป็นต้องใช้รูปแบบนี้หากคุณต้องการสร้าง show_path ด้วยตัวเลือก url
spyle

1
นั่นใช้ได้ผลกับฉันด้วยฉันแค่สงสัยว่าความคิดนั้นอยู่เบื้องหลังการแจ้งเตือน / การแจ้งเตือนในแฟลชแฮชเท่านั้น
jbnunn

2
ทำงานใน Rails 5
Richard Peck

1
คุณสามารถย้ายออกจากรูปแบบ Ruby 1.9 เป็น:redirect_to(show_path, flash: { error: "Insufficient rights!" })
mmsilviu

17

หากคุณประสบปัญหาในการเก็บแฟลชไว้หลังจากเปลี่ยนเส้นทางไปยังเส้นทางอื่นให้ใช้สิ่งนี้

flash.keep

ในวิธีการของคุณก่อนที่จะเปลี่ยนเส้นทาง


ฉันเพิ่งได้รับสิ่งต่อไปนี้ที่แสดงในหน้ากำกับ:#<ActionDispatch::Flash::FlashHash:0x007f88c6e0c3c8> #<ActionDispatch::Flash::FlashHash:0x007f88c6e0c3c8>
Hengjie

ดูเหมือนว่ามันจะไม่ใช่คำตอบของคำถาม แต่มันคือทางออกของปัญหาของฉัน!
Claudio Shigueo Watanabe

0

เพื่อให้เป็นไปตามรูปแบบ PRG อย่างแท้จริงฉันสงสัยว่าโครงการนี้ใช้ได้ดีหรือไม่

https://github.com/tommeier/rails-prg

ฉันทนไม่ได้แอพที่ไม่ติดตาม PRG ในฐานะผู้ใช้ ..... ฉันเป็น 6 เพจหลังจาก POST และกดปุ่มย้อนกลับเพื่อกลับไป 10 เพจที่แล้วถูกบล็อกโดย "คุณต้องการโพสต์อึนี้ใหม่หรือไม่" ... ไม่ไม่แน่นอน ฉันแค่อยากกลับไปที่หน้าที่เคยเห็นมาก่อน

แอปที่ไม่ใช่ PRG สร้างความรำคาญให้กับผู้ใช้เป็นอย่างมาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.