2012-06-19 15 views
5

मैं सिनात्रा, रूबी, रैक, हैमल, टट्टू और सेंडग्रिड का उपयोग करके एक ऐप बनाने की कोशिश कर रहा हूं, जिसमें हेरोकू पर तैनाती के लिए गिट और आरवीएम है। ऐप एक ब्लॉग संस्करण है जिसे किसी फ़ॉर्म पर सबमिट की गई टिप्पणी के साथ एक ईमेल भेजना चाहिए। मेरे स्थानीय सर्वर, जब प्रपत्र सबमिट मैं निम्नलिखित त्रुटि मिलती है पर:रैक/सिनात्रा लोडरर: ऐसी फ़ाइल लोड नहीं कर सकता

LoadError at/
cannot load such file -- pony 
file: tools.rb location: require line: 314 
BACKTRACE 
(expand) 
/Users/Kevin/prog/ruby/Sinatra/Noobs/noobs.rb in block in <top (required)> 
    require 'pony' 

Heroku पर चलाते हैं, कोई आंतरिक सर्वर त्रुटि में प्रपत्र submittal का परिणाम है। 'इस तरह के फ़ाइल लोड नहीं कर सकता' त्रुटि पता चलता है कि फ़ाइल मणि रास्ते पर नहीं है, लेकिन अगर मैं सही ढंग से समझ, ओएस इससे सहमत नहीं हैं:

➜ noobs git:(master) ✗ bundle show pony 
/Users/Kevin/.rvm/gems/[email protected]/gems/pony-1.4 

➜ noobs git:(master) echo $GEM_PATH 
/Users/Kevin/.rvm/gems/[email protected]:/Users/Kevin/.rvm/gems/[email protected] 

यहाँ कोड जहां टट्टू की आवश्यकता है (noobs.rb) है:

require 'rubygems' 
require 'sinatra' 
require 'haml' 
require "sinatra/reloader" if development? 

# ... 

post '/' do 
    require 'pony' 
    Pony.mail(:from => params[:name] + "<" + params[:contact] + ">", 

टट्टू को काम करने के लिए मुझे क्या करने की ज़रूरत है?

+0

जिज्ञासा से, फॉर्म पोस्ट होने पर आपको केवल टट्टू की आवश्यकता क्यों होगी? ऐप स्टार्टअप पर केवल एक बार इसकी आवश्यकता क्यों नहीं है? (मैं बंडलर या हेरोकू का उपयोग नहीं करता हूं, और इसलिए आपको सलाह नहीं दे सकता कि आपके मणि इंस्टॉल और/या लाइब्रेरी लोड के साथ क्या गलत हो सकता है या नहीं।) – Phrogz

+2

इसके अलावा, ध्यान दें कि रूबी 1.9 के तहत आपको 'आवश्यकता' की आवश्यकता नहीं है रूबी रत्न '; यह स्थापना का हिस्सा है। क्या आपने सबसे आसान संभव ऐप में 'sinatra' की आवश्यकता से पहले केवल 'आवश्यकता' टट्टू डालने की कोशिश की है? – Phrogz

+0

धन्यवाद, Phrogz। मुझे मूल रूप से दूसरे की आवश्यकता के साथ शीर्ष पर टट्टू की आवश्यकता होती है, और इसे मैंने देखा एक उदाहरण से मेल खाने के लिए स्थानांतरित किया। इसके बाद इसे पोस्ट करने की अनुमति देता है जब तक कि पोस्ट को कॉल नहीं किया जाता है। आवश्यकता 'रूबी रत्न' लोड पथ पर मणि को मैन्युअल रूप से जोड़ने की कोशिश करने से एक बचे हुए थे, जिसे मैंने सही तरीके से नहीं किया हो। मुझे इसे हटा देना चाहिए था। मैं टट्टू से शुरू होने वाला एक आसान ऐप करने की कोशिश कर रहा हूं और यह अभी तक उड़ा नहीं है, इसलिए शायद वह फल सहन करेगा। मैं परिणाम पोस्ट करूंगा। –

उत्तर

11
require "bundler/setup" 

शायद आपकी त्रुटि को ठीक करेगा।

चूंकि आप सिनात्रा के साथ बंडलर का उपयोग कर रहे हैं, इसलिए आपको बंडलर रत्नों को काम करने के लिए बंडलर की आवश्यकता होती है। आप शायद अपने रत्न बंडलर और अपने रत्न के बीच विभाजित है। यदि आपके पास अपने रत्न में सिनात्रा और हैमल है लेकिन आपके जेमफाइल में टट्टू आपको लोडरर दिखाई देगी।

+0

धन्यवाद, केथसेल! 'आवश्यकता' बंडलर/सेटअप "'इसे ठीक किया गया। मैंने कम से कम अब तक कम-से-कम ऐप के साथ काम करना बंद कर दिया है। मुझे उम्मीद है कि यह तब तक काम करेगा जब तक मैंने ऐसा कुछ नहीं किया जो मेरे रत्नों को पहले के रूप में विभाजित करता हो। –

+0

आपका स्वागत है। अगर यह आपके लिए काम करता है तो कृपया इस उत्तर को स्वीकार करें। – keithcelt

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

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