2014-04-11 11 views
10

Trong deploy.rb, tôi tin rằng :rails_env thường được đặt bởi require 'capistrano/rails' được tìm thấy trong số Capfile của bạn. Tôi đang sử dụng đường ray, nhưng không sử dụng đường ống nội dung tích hợp và do đó, không sử dụng capistrano/ray và trong tình trạng khó khăn phải đặt thủ công :rails_env trong deploy.rb khi chuyển đổi giữa dàn dựng và sản xuất triển khai. Điều này có vẻ khá ngớ ngẩn vì môi trường luôn được bao gồm khi thực hiện cap staging deploy hoặc cap production deploy. Tôi đăng câu hỏi này, vì nó có vẻ như nó có thể là một điểm đau khá phổ biến với một giải pháp tầm thường, nhưng sau nhiều googling, tôi đã đưa ra tay trắng. Do đó, tôi đào vào mã nguồn Capistrano 3.1.0 để tìm hiểu cách truy cập biến giai đoạn được nhập trên dòng lệnh và sẽ theo dõi với một câu trả lời ngắn gọn có một chút giải thích.Làm thế nào để bạn truy cập rails_env từ lệnh Cap deploy?

Trả lời

23

Câu trả lời đơn giản là thêm dòng sau gần đầu deploy.rb:

thiết lập: RAILS_ENV, lấy (: giai đoạn)

Biến :stage được đặt trong capistrano/setup được yêu cầu trong số Capfile của bạn. Kịch bản lệnh này tạo ra các tác vụ rake cho mỗi giai đoạn được xác định trong config/deploy. Bên trong định nghĩa cho nhiệm vụ cào, bạn sẽ tìm thấy những điều sau: set(:stage, stage.to_sym) là biến stage/rails_env từ lệnh cap staging deploy hoặc cap production deploy của bạn.

Các vấn đề liên quan