تمرير تجزئة فلاش من وحدة تحكم واحدة إلى وحدة تحكم أخرى

لدي إنشاء طريقة في وحدة تحكم واحدة وفي نهاية وحدة التحكم هذه أريد redirect_to وحدة تحكم/عرض أخرى. كيف سأكون قادراً على عرض flash [: notice] بعد انتهاء وحدة التحكم الأولى وعرض طريقة العرض redirect_to القادمة؟

هنا هو رمز في وحدة تحكم أول:

if @list.save
        redirect_to root_path, :notice => "Created!"

لاحظت أيضًا أنها لا تعمل هنا أيضًا:

if @list.save
    redirect_to root_path, :alert => "Created!"

إليك ملف المسارات:

root :to => 'sessions#new'
1

3 إجابة

لإبقاء رسالة فلاش على طلب إضافي ، يمكنك استخدام flash.keep - من قسم الفلاش على أدلة Rails :

لنفترض أن هذا الإجراء يتوافق مع root_url ، ولكنك تريد الكل   طلبات هنا ليتم إعادة توجيهها إلى # المؤشر UsersController. إذا كان هناك إجراء   يحدد الفلاش وإعادة التوجيه هنا ، وعادة ما يتم فقدان القيم   عند حدوث عملية إعادة توجيه أخرى ، ولكن يمكنك استخدام "الاحتفاظ" لإجراء ذلك   تستمر لطلب آخر.

Clarification: This solution only applies if you're losing the flash due to a double redirect.

4
وأضاف

ما هو الإصدار من Rails أنت على؟ بناء الجملة الذي تستخدمه هو ميزة جديدة نسبيًا. حاول القيام بذلك على المدى الطويل:

flash[:notice] = 'Created'
redirect_to root_path
0
وأضاف
حاول هذا. غير متأكد من السبب في أنها لن تعمل مثل هذا سواء.
وأضاف المؤلف locoboy, مصدر

هل جربت هذا؟

redirect_to(whatever_path, :notice=>"hello world")

Also, you can use :error

redirect_to(whatever_path, :error=>"hello error")
0
وأضاف
نعم حاول هذا ولكن لا يزال غير متأكد لماذا لا تظهر.
وأضاف المؤلف locoboy, مصدر
لدي هذا في application.html <�٪ flash.each do | key، value | ٪> <div class = "alert alert - <�٪ = key٪>"> <�٪ = value٪> </div> <�٪ end٪>
وأضاف المؤلف locoboy, مصدر
هل التخطيط أو العرض الخاص بك يخرج flash [: notice] أو flash [: error] ؟
وأضاف المؤلف maček, مصدر