मैं एक साधारण रैक मिडलवेयर "हैलो वर्ल्ड" का प्रयास करना चाहता हूं, लेकिन मुझे अटक जाना प्रतीत होता है। मुख्य sytax तरह बदल यह लग रहा है, के बाद से कुछ उदाहरण इस कोड का उपयोग:रेल के साथ हैलो वर्ल्ड रैक मिडलवेयर 3: सभी अनुरोधों के शरीर को कैसे संसाधित करें
undefined method `<<' for #<ActionDispatch::Response:0x103f07c48>
यहां तक कि जब मैं वहाँ बाहर अन्य कोड को देखो, मैं उन्हें पाने के लिए प्रतीत नहीं कर सकते हैं:
require 'rack/utils'
class FooBar
def initialize(app)
@app = app
end
def call(env)
status, headers, body = @app.call(env)
body.body << "\nHi from #{self.class}"
[status, headers, body]
end
end
एक त्रुटि पैदा करता है रेल 3.0.3 के साथ चल रहा है।
यहाँ मेरी ठोस प्रश्न हैं:
- मैं कैसे एक रेल app से चलाने के लिए और किसी भी उत्पादन के शरीर को संशोधित करने के लिए एक सरल रैक मिडलवेयर मिल सकता है?
- मुझे Rails.application.config.middleware.use घोषणा कहां रखना चाहिए? (मैंने उस के लिए कॉन्फ़िगर/प्रारंभकर्ताओं में अपना प्रारंभिक प्रारंभकर्ता बनाया है)
बहुत पहले से धन्यवाद!
# in config/application.rb
config.middleware.use 'FooBar'
# in config/initializers/foo_bar.rb
class FooBar
def initialize(app)
@app = app
end
def call(env)
status, headers, response = @app.call(env)
[status, headers, response.body << "\nHi from #{self.class}"]
end
end
की सलाह दी हो, उस पर लगभग हर दूसरे अनुरोध (कम से कम रेल 3.0.3 पर), यह एक और मिडलवेयर (रैक के कारण असफल हो जायेगी: