Tôi muốn tải giao diện người dùng jQuery qua Google CDN nếu đang trong quá trình sản xuất và cục bộ nếu đang phát triển. Vì vậy, trong bố cục application.html.erb của tôi, tôi phải biết liệu tôi có đang sản xuất hay không. Có một biến tôi có thể kiểm tra?Làm thế nào để kiểm tra phát triển hoặc sản xuất trong tệp ERB trong Rails?
Trả lời
Để mở rộng một chút về câu trả lời của Paritosh, Rails.env.production?
và Rails.env.development?
sẽ trả về true/false tùy thuộc vào môi trường bạn đang sử dụng.
Các phương pháp này được xác định trong lớp StringInquirer
trong mô-đun ActiveSupport
. Xem chúng here.
sử dụng Rails.env
, nó sẽ cung cấp cho bạn môi trường bạn đang làm việc.
Cảm ơn, đó là những gì tôi đang tìm kiếm. Nó xuất hiện để trả về một StringInquirer. Có cách nào đặc biệt chúng tôi dự kiến sẽ truy vấn đối tượng này? –
kiểm tra @Zajn câu trả lời, nó hoàn toàn phù hợp với yêu cầu của bạn. –
Để RIFF tắt của các câu trả lời trước, bạn có thể phạm vi kiểm tra của bạn với môi trường cụ thể như sau:
Rails.env.development?
nơi development?
là tên của môi trường bạn muốn kiểm tra.
Ngoài ra cái gì khác tôi có xu hướng làm là nếu tôi đang kiểm tra nhiều môi trường bạn có thể muốn làm điều gì đó như:
if %w(staging production).include?(Rails.env)
# do something
end
Tôi có thể xem nguồn của các chức năng này ở đâu? phải là một ý tưởng lập trình meta. – shajin
Vâng, đúng vậy. Có một cái nhìn [ở đây] (https://github.com/rails/rails/blob/e20dd73df42d63b206d221e2258cc6dc7b1e6068/activesupport/lib/active_support/string_inquirer.rb). – Zajn