Trả lời

28

Để mở rộng một chút về câu trả lời của Paritosh, Rails.env.production?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.

+0

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

+1

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

2

sử dụng Rails.env, nó sẽ cung cấp cho bạn môi trường bạn đang làm việc.

+1

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? –

+0

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. –

7

Để 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 
Các vấn đề liên quan