কোনটি এনভির সাথে চলছে তা যাচাই করার সময় আমি উদাহরণগুলিতে উভয়ই দেখতে পাচ্ছি What's কী পছন্দ? তারা কি সমস্ত উদ্দেশ্য এবং উদ্দেশ্যে সমান?
কোনটি এনভির সাথে চলছে তা যাচাই করার সময় আমি উদাহরণগুলিতে উভয়ই দেখতে পাচ্ছি What's কী পছন্দ? তারা কি সমস্ত উদ্দেশ্য এবং উদ্দেশ্যে সমান?
উত্তর:
ডক্স অনুসারে , #Rails.env
মোড়ানো RAILS_ENV
:
# File vendor/rails/railties/lib/initializer.rb, line 55
def env
@_env ||= ActiveSupport::StringInquirer.new(RAILS_ENV)
end
তবে, কীভাবে এটি মোড়ানো রয়েছে তা বিশেষভাবে দেখুন ActiveSupport::StringInquirer
:
এই শ্রেণিতে একটি স্ট্রিং মোড়ানো আপনাকে সাম্যের জন্য পরীক্ষার একটি সুন্দর উপায় দেয়। Rails.env দ্বারা ফেরত মানটি স্ট্রিংইনকায়ারর বস্তুতে মোড়ানো থাকে তাই এটি কল করার পরিবর্তে:
Rails.env == "production"
আপনি এটি কল করতে পারেন:
Rails.env.production?
সুতরাং তারা ঠিক সমতুল্য নয়, তবে তারা মোটামুটি কাছাকাছি। আমি এখনও রেলগুলি খুব বেশি ব্যবহার করি নি, তবে আমি বলব #Rails.env
অবশ্যই ব্যবহারের কারণে আরও দৃষ্টি আকর্ষণীয় বিকল্প StringInquirer
।
Rails.env
হ'ল নতুন মান হিসাবে RAILS_ENV
হ্রাস করা হচ্ছে।
ENV['RAILS_ENV']
এখন অবচয় করা হয়েছে ।
আপনার ব্যবহার করা উচিত Rails.env
যা পরিষ্কারভাবে অনেক ভাল is
রেলগুলির আগে 2.x বর্তমান পরিবেশ পাওয়ার জন্য পছন্দের উপায়টি RAILS_ENV
ধ্রুবকটি ব্যবহার করা হয়েছিল । তেমনিভাবে, আপনি RAILS_DEFAULT_LOGGER
বর্তমান লগারটি RAILS_ROOT
পেতে বা রুট ফোল্ডারের পাথ পেতে ব্যবহার করতে পারেন ।
রেল ২.x থেকে শুরু করে, রেলগুলি Rails
কিছু বিশেষ পদ্ধতি সহ মডিউলটি প্রবর্তন করেছে :
এটি কেবল একটি অঙ্গরাগ পরিবর্তন নয়। রেলস মডিউলটি এমন স্ট্যান্ডার্ড কনস্ট্যান্ট যেমন StringInquirer
সমর্থন হিসাবে উপলব্ধ না করে এমন ক্ষমতা সরবরাহ করে । কিছুটা সামান্য পার্থক্যও রয়েছে। Rails.root
একটি সাধারণ String
বুথ Path
উদাহরণ দেয় না
যাইহোক, পছন্দের উপায়টি Rails
মডিউলটি ব্যবহার করছে । কনস্ট্যান্টগুলি 3 রেলগুলিতে অবহিত করা হয়েছে এবং ভবিষ্যতে প্রকাশে অপসারণ করা হবে, সম্ভবত রেলস 3.1।
Rails.env
কোনও সমস্যা ছাড়াই কাজ করে।
আপডেট: রেলগুলিতে 3.0.9: এনএভিও পদ্ধতিটি রেলটি / লাইব / Rails.rb এ সংজ্ঞায়িত করা হয়েছে