Chúng tôi đang làm một bản nâng cấp với Ruby on Rails 3 (như nửa trên thế giới ngay bây giờ), và tôi đã siêng năng thay thế tập quán của RAILS_ENV, ví dụThay thế Ruby on Rails đúng 3 cho ENV ["RAILS_ENV"] || = 'production'?
RAILS_ENV == 'wibble'
# becomes
Rails.env.wibble?
Nhưng tôi không phải là nhất định phải làm gì với:
ENV["RAILS_ENV"] ||= 'production'
Chúng tôi đã có nó ở phía trên cùng của một bó toàn bộ Rake nhiệm vụ và daemon, và ý tưởng là bạn có thể vượt qua RAILS_ENV
trên dòng lệnh, nhưng nó mặc định là ' sản xuất 'nếu nó không được thông qua.
Tôi không chắc chắn về cách Rails3 thích hợp mới để thực hiện việc này. Vì vậy, bây giờ rails:upgrade:check
tôi đang phàn nàn mãnh liệt của sự xâm nhập này của Rails2-ishness ...
Tôi không biết nếu:
::Rails.env ||= 'production'
sẽ làm việc.
Có Rails.env
tồn tại trong daemon không?
Liệu tự động có được điền trước bằng giá trị RAILS_ENV được truyền trên dòng lệnh hay chúng ta cần một cách mới để gọi các trình tiện ích không?
Câu thần chú chính xác cho điều này là gì?
Cập nhật:
Nhìn vào các mã nguồn cho Rails.env
,
def env
@_env ||= ActiveSupport::StringInquirer.new(RAILS_ENV)
end
chúng ta có thể suy ra một số điều.
Thứ nhất, nó trông giống như RAILS_ENV
không thực sự vẫn còn tồn tại - có nghĩa là nó có thể được thiết lập và Rails.env
sẽ tìm thấy nó ...
Nếu Rails là hợp lệ trong bối cảnh của một daemon, sau đó không có gì khác cần phải được làm xong. Nếu không - sau đó tôi chỉ có thể không quan tâm nhiều và sử dụng cũ RAILS_ENV
như trước.
Ah - bây giờ điều này rất hữu ích, Vì vậy, "env (RAILS_ENV)" là cách bạn đặt thủ công và biến môi trường ngay bây giờ? –
* g * chỉ cần nhìn vào mã nguồn cho Rails.env - bây giờ được thêm vào câu hỏi ... –