2010-10-13 10 views
9

Tôi có một ứng dụng 3 đường ray (mà tôi đã nâng cấp). Nó chạy trên hành khách và nginx nhưng trên máy chủ sản xuất của tôi nó cũng bắt đầu với môi trường được thiết lập để 'sản xuất'. Tôi biết tôi đang thiếu một cái gì đó thực sự cơ bản, nhưng tôi chỉ không thể tìm ra nơi để thiết lập môi trường thay vì trong environment.rb.Rails 3 - thiết lập môi trường

Cảm ơn bạn đã trợ giúp!

CẬP NHẬT: ok, tôi đã học được rằng tôi vẫn có thể làm điều đó với Rails.env = 'production'.

Đó dường như là trường cũ đối với tôi. Bạn có biết một cách thanh lịch để cấu hình điều này có thể trong Capfile hoặc sth như thế không?

Trả lời

6

Rails 3 hơi khác một chút so với Rails 2.x ở chỗ nó có tệp config.ru, giống như các ứng dụng Rack khác.

Hành khách phát hiện đường ray là ứng dụng Rack, vì vậy bạn sẽ phải sử dụng RackEnv thay vì RailsEnv trong vhost. Bạn có thể thiết lập môi trường bằng RackEnv theo tài liệu cho Hành khách/Nginx.

3

Bạn có thể định cấu hình RAILS_ENV khác nhau cho từng ứng dụng trong vhost của bạn cho nginx với hành khách. Tôi đã không bao giờ được sử dụng nginx nhưng trong apache nó chỉ là một chỉ thị RailsEnv=development. Bằng cách đó, mỗi trang web chỉ có nó thiết lập, không phải lo lắng với việc cấu hình một nhiệm vụ nắp hoặc biến hoặc bất cứ điều gì. Xem số docs. Lưu ý rằng mặc định là production vì vậy điều này đã được đặt cho bạn.