14

मैं नियंत्रक में फ्लैश नोटिफिकेशन सेट करने का प्रयास कर रहा हूं लेकिन ऐसा लगता है कि मैं केवल परिभाषित कर सकता हूं: नोटिस। जब मैं परिभाषित करने का प्रयास करता हूं: त्रुटियां या फ़्लैश [: त्रुटियां] मुझे त्रुटियों का एक समूह मिल गया है। मेरे पास वर्तमान में यह काम कर रहा है लेकिन सभी संदेश स्पष्ट रूप से एक नोटिस प्रकार हैं, न कि कोई त्रुटि या चेतावनी। मैं जानना चाहता हूं कि नोटिस के बजाय त्रुटि या चेतावनी कैसे सेट करें। मैं manuals_controller.rbट्विटर बूटस्ट्रैप रेल के साथ फ़्लैश नोटिफिकेशन को परिभाषित करने के लिए कैसे करें

class ManualsController < ApplicationController 
    def create 
    respond_to do |format| 
     format.html { redirect_to root_url, notice:'MyManual was successfully created.' } 
    end 
    end 
end 
+1

https://gist.github.com/suryart/7418454 –

उत्तर

28

में application.html.erb

<%= bootstrap_flash %> 

में रेल 3.2 और चहचहाना बूटस्ट्रैप रेल मणि

उपयोग कर रहा हूँ आप seyhunak के twitter-bootstrap-rails मणि से फ्लैश सहायक का उपयोग कर रहे हैं। सहायक का उपयोग करने के बजाय, आप स्वयं कोड सेट कर सकते हैं और देख सकते हैं कि सब कुछ कैसे काम करता है।

यहां बताया गया है कि मैंने ट्विटर बूस्ट्रैप के साथ रेल फ्लैश संदेश कैसे स्थापित किए हैं।

रेल का उपयोग करता है: नोटिस और: फ्लैश संदेश कुंजी के रूप में अलर्ट। ट्विटर बूटस्ट्रैप अतिरिक्त कक्षाओं के साथ एक बेस क्लास। अलर्ट प्रदान करता है। चेतावनी-सफलता और .alert-error (अलर्ट पर बूटस्ट्रैप दस्तावेज़ देखें)। ट्विटर बूटस्ट्रैप "अलर्ट-सफलता" शैली के साथ एक रेल "नोटिस" संदेश स्टाइल करने के लिए थोड़ा सा पार्सिंग आवश्यक है। रेल "चेतावनी" संदेश सहित कोई अन्य संदेश, ट्विटर बूटस्ट्रैप "अलर्ट-त्रुटि" शैली के साथ स्टाइल किया जाएगा।

डिफ़ॉल्ट रूप से, ट्विटर बूटस्ट्रैप। अलर्ट-सफलता और एक लाल पृष्ठभूमि को .alert-error में एक हरे रंग की पृष्ठभूमि लागू करता है। ट्विटर बूटस्ट्रैप एक नीली पृष्ठभूमि के साथ एक तीसरी कक्षा। अलर्ट-जानकारी प्रदान करता है। थोड़ा हैकिंग के साथ, एक कस्टम नाम के साथ एक रेल फ्लैश संदेश बनाना संभव है, जैसे: जानकारी, जो बूटस्ट्रैप। चेतावनी-जानकारी कक्षा के साथ प्रदर्शित होगी। हालांकि, केवल "चेतावनी" और "नोटिस" का उपयोग करने के रेल सम्मेलन के साथ रहना बुद्धिमानी है। रेल के पहले संस्करणों में "त्रुटि" का उपयोग किया गया था लेकिन वर्तमान अभ्यास "त्रुटि" के बजाय "चेतावनी" का उपयोग करना है।

आप अपने एप्लिकेशन लेआउट फ़ाइल में सीधे फ़्लैश संदेश प्रदर्शित करने के लिए कोड शामिल कर सकते हैं या आप आंशिक बना सकते हैं। आंशिक के साथ एक उदाहरण यहां दिया गया है।

सबसे पहले, क्या आवेदन लेआउट में चला जाता है:

# app/views/layouts/application.html.erb 
. 
. 
. 
<%= render 'layouts/messages' %> 
. 
. 
. 

इसके बाद, आंशिक कि आवेदन लेआउट में शामिल हो जाता है:

# app/views/layouts/_messages.html.erb 
# Rails flash messages styled for Bootstrap 3.0 
# works with Rails 4.0 or Rails 4.1 
<% flash.each do |name, msg| %> 
    <% if msg.is_a?(String) %> 
    <div class="alert alert-<%= name.to_s == 'notice' ? 'success' : 'danger' %>"> 
     <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> 
     <%= content_tag :div, msg, :id => "flash_#{name}" %> 
    </div> 
    <% end %> 
<% end %> 

और एक में दो अलग अलग फ़्लैश संदेशों की स्थापना का एक उदाहरण नियंत्रक:

class VisitorsController < ApplicationController 

    def new 
    flash[:notice] = 'Welcome!' 
    flash[:alert] = 'My birthday is soon.' 
    end 

end 

यह उदाहरण मैंने लिखा एक गहन लेख से आता है:

Twitter Bootstrap and Rails

एक विकल्प है कि चार अलग अलग फ़्लैश संदेश प्रकारों को समायोजित (सफलता, त्रुटि, चेतावनी, नोटिस) के लिए, Rails Flash Messages using Twitter Bootstrap का एक उदाहरण देख।

+0

जब मैंने उपरोक्त परिवर्तन किए, तो मुझे एक त्रुटि मिली "प्रतीक को स्ट्रिंग में परिवर्तित नहीं किया जा सकता"। अपने शुरुआती उत्तर को पूरी तरह से समझाने के लिए धन्यवाद। – barnett

+1

यहां मेरे [रेल बूटस्ट्रैप] का एक लिंक है (https: // github।com/RailsApps/rails-bootstrap) गिटहब पर उदाहरण ऐप जिसमें फ़्लैश संदेश कोड होता है। यह उदाहरण क्लोन करने में मदद कर सकता है और इसे संदर्भ कार्यान्वयन के रूप में जांच सकता है। –

+0

अगर मैं इसे AJAX के साथ काम करना चाहता हूं तो कैसे? – barnett

संबंधित मुद्दे