2014-07-18 7 views
7

मैं रेल में सादा पाठ में एक ईआरबी टेम्पलेट प्रस्तुत करना चाहता हूं।रेल सादा पाठ टेम्पलेट

एप्लिकेशन/विचारों/परीक्षण/test.txt.erb

Test 
<%= @test %> 

जब मैं करने की कोशिश की, रेल निम्न त्रुटि के साथ शिकायत की:

आदर्श रूप में, मैं इस तरह कुछ करने के लिए सक्षम होगा
ActionView::MissingTemplate (Missing template test/test, application/test with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee]}. Searched in: 
    * "/Users/landonschropp/Development/test/app/views" 
): 
+0

आपकी फ़ाइल का नाम 'test.txt.erb' क्यों है? ऐसा नहीं है कि 'test.html.erb' – Pavan

+0

होना चाहिए, मैं इसे सादा पाठ के रूप में प्रस्तुत करना चाहता हूं, HTML नहीं। – LandonSchropp

+0

मुझे समझ में आया कि आप इसे एक सादा पाठ के रूप में प्रस्तुत करना चाहते हैं, लेकिन 'txt' नामक कोई प्रारूप नहीं है, इसलिए त्रुटि भी है। – Pavan

उत्तर

8

सबसे आसान तरीका है अपनी कार्रवाई में है:

render '/test/test.text.erb', layout: false, content_type: 'text/plain' 
+0

यह चाल है! मदद के लिए धन्यवाद। – LandonSchropp

0

तुम सिर्फ फ़ाइल प्रस्तुत करना चाहते हैं खुद का उपयोग करें:

render "/test/test.text.erb" 

शुरुआत में "/" का उपयोग करना महत्वपूर्ण है क्योंकि रेल समझता है कि यह एक फ़ाइल है। बेशक, यह एचटीएमएल टैग से "<" या ">" से बचने वाला नहीं है।

या यदि वह सादा पाठ फ़ाइल से बिल्कुल नहीं है, तो आप इसे इनलाइन कर सकते हैं:

render plain: "OK" 
+0

उत्तर के लिए धन्यवाद, लेकिन इस जवाब में एमआईएमई प्रकार गुम था। – LandonSchropp

2

ठीक तरह से मैंने पाया

Mime::Type.register 'text/plain', :txt 

environment.rb में जोड़ने के लिए है

यदि आपको आवश्यकता है तो आप डिफ़ॉल्ट जोड़ सकते हैं: {प्रारूप: 'txt'} परिभाषा मार्ग

Rails.application.routes.draw do 
    root 'pages#home' 

    get 'test', to: 'pages#test', defaults: {format: 'txt'} 
end 
+0

उत्तर के लिए धन्यवाद, लेकिन यह मुझे काम करने के लिए प्रतीत नहीं होता था। मुझे अभी भी ऊपर की तरह एक ही त्रुटि मिली है। – LandonSchropp

0

, बस का उपयोग कर ...

render 'test', layout: false, formats: [:text] 

... आम तौर पर काम करता है, यह सोचते हैं आप सामान्य रूप से में से एक में test.text.erb नामक एक टेम्पलेट /app/views के तहत खोजे गए स्थान।

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