কোনটি এনভির সাথে চলছে তা যাচাই করার সময় আমি উদাহরণগুলিতে উভয়ই দেখতে পাচ্ছি 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 এ সংজ্ঞায়িত করা হয়েছে