2011-09-20 6 views

उत्तर

1

Heroku वास्तव में URL चर वातावरण में डिफ़ॉल्ट रूप से

app_name = ENV['URL'].split(".").first 

यहाँ संदर्भित सेट: http://devcenter.heroku.com/articles/config-vars और http://ididitmyway.heroku.com/past/2010/11/9/sinatra_settings_and_configuration/

अद्यतन: वास्तव में यूआरएल चर हो सकता है डिफ़ॉल्ट रूप से वहां नहीं होते हैं, लेकिन आप हमेशा एक पर्यावरण चर "ऐप नाम" प्राथमिकता जोड़ सकते हैं, जब तक कि आप उस दृष्टिकोण से बचने की कोशिश नहीं कर रहे थे।

अपडेट 2: वास्तव में, दूसरा, स्पष्ट लेकिन सीमित दृष्टिकोण, अनुरोध चर से डोमेन को पकड़ना होगा, लेकिन यह आपको आपके नियंत्रक तक सीमित कर देगा। http://guides.rubyonrails.org/action_controller_overview.html#the-request-object

+1

मैंने कॉन्फ़िगर की जांच की है और इसमें ऐप-नाम के साथ कोई चर नहीं है। हां, एक कॉन्फ़िगरेशन सेट करना एक दृष्टिकोण है। –

+0

यह हमेशा काम नहीं करता है, क्योंकि जब आप इसे चेक करते हैं तो आप अपने ऐप के लिए एक अलग वर्तनी का उपयोग कर सकते थे .. उदा। test_app – Tilo

1
Rails.application.config.session_options[:key].sub(/^_/,'').sub(/_session/,'') 
=> "test-app" 

, रेल ऐप्लिकेशन के नाम पर है कि के रूप में यह वर्तनी गया था जब तुमने किया था

'नए एप्लिकेशन के नाम रेल' इस का उपयोग करना, आप ऐसा कर सकता है:

class << Rails.application 
    def name 
    Rails.application.config.session_options[:key].sub(/^_/,'').sub(/_session/,'') 
    end 
end 

Rails.application.name 
=> 'test-app' 
+1

की बजाय टेस्ट-ऐप वास्तव में, यह कुकी –

14

ENV['URL'] के साथ समाधान केवल अनुरोधों के दौरान काम करेगा।

तो अगर आप एक अनुरोध बाहर एप्लिकेशन आईडी जानना चाहते हैं, तो आप इस

heroku config:add APP_NAME=<myappname> --app <myappname> 

की तरह एक config चर सेट और के दौरान संकलन

heroku labs:enable user-env-compile -a myapp 

lab feature है कि आप उन्हें उपयोग करने के लिए अनुमति देता है सक्षम है और अब मेरे पास मेरा ऐप नाम उपलब्ध है:

ENV["APP_NAME"] # '<myappname>' 

यह आसान है अगर यह आसान है आप ऐप के नाम या आईडी के आधार पर अलग-अलग कॉन्फ़िगरेशन फ़ाइल (ओथ क्रेडेंशियल्स के साथ कहें) लोड करना चाहते हैं।

+0

'प्रयोगशालाओं का नाम है: सक्षम' एक heroku कमांड नहीं है। कोई विचार? – baash05

+2

शायद अपने heroku मणि संस्करण की जांच करें या heroku toolbelt स्थापित करें। या डॉक्स/संपर्क heroku देखें। https://devcenter.heroku.com/categories/labs क्या मदद की साझा करना सुनिश्चित करें! – hakunin

+0

उसके लिए heroku labs कमांड के बिना काम किया। – abrocks

0

यदि आप this प्रति प्रत्येक ऐप में विभिन्न वातावरण में चल रहे हैं, तो आप staging.rb या production.rb में एक चर सेट कर सकते हैं।

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