Tôi có một đoạn mã JavaScript mà tôi muốn thêm vào một trang, nhưng chỉ trong môi trường sản xuất. Đường ray có một cách để chèn hoặc có điều kiện đưa vào triển khai hay không. Tôi biết tôi có thể làm "nếu Rails.env.production?" Nhưng tôi không muốn kiểm tra điều kiện này mỗi khi trang được tải.sửa đổi tệp erb khi triển khai
5
A
Trả lời
1
Những gì tôi làm trong tình huống này là tạo ra một hằng số trong tập tin cấu hình của từng môi trường:
#config/environments/development.rb
SNIPPET = ""
#config/environments/production.rb
SNIPPET = "<script src='whatever.js'></script>"
#app/views/file.html.erb
<%= SNIPPET %>
5
tôi sẽ không lo lắng về chi phí của một if
tuyên bố.
Tại sao không sử dụng một phương pháp tùy chỉnh helper:
def snippet
if RAILS_ENV == "production"
javascript_tag "whatever"
elsif . . .
end
sau đó bạn có thể sử dụng cú pháp giống nhau:
<%= snippet %>
và bạn nhận được một vài lợi ích:
- quyền truy cập vào đường ray giúp đỡ khác
- tệp cấu hình của bạn sẽ không được rải rác với html thô
Các vấn đề liên quan
- 1. Cho phép người dùng chỉnh sửa tệp cấu hình sau khi triển khai
- 2. Triển khaiKhông triển khai tệp
- 3. Sử dụng __weak để sửa đổi lưu trữ thông số khi triển khai
- 4. Maven: Sửa đổi tệp kê khai phụ thuộc JARs
- 5. Tệp .deploy không triển khai tệp XML
- 6. Sửa đổi tệp jar
- 7. Triển khai các tệp Java
- 8. Thay đổi trong tệp CSS không được phản ánh sau khi triển khai
- 9. ClickOnce triển khai và thay đổi tệp cấu hình sau khi cài đặt
- 10. Web.config bị thay đổi (mạnh) trong khi triển khai Azure
- 11. Chuyển đổi SLIM sang HAML hoặc ERB
- 12. Sửa đổi tên tệp trước khi lưu bằng Carrierwave
- 13. Triển khai hệ thống tệp cơ bản
- 14. Devise mất phiên sau khi triển khai
- 15. sửa đổi đối tượng phân tán xung đột trên kiểu trả về khi triển khai 'phát hành' trong lớp Singleton
- 16. Cách triển khai Kiểm tra/phiên bản Bảng Sửa đổi trên PostgreSQL
- 17. triển khai với capistrano bằng tệp pem
- 18. Triển khai .NET Gridview với SqlDataSource - chỉnh sửa ngoại lệ
- 19. Gói triển khai Visual Studio - thay đổi cấu trúc tệp mà tệp .zip tạo ra?
- 20. Triển khai tệp .ear tới tomcat
- 21. Phát triển hiệu quả để sửa đổi AOSP framework.jar
- 22. Triển khai hàng đợi dựa trên tệp
- 23. Groovy có thể sao chép chữ ký của lớp nhưng sửa đổi việc triển khai
- 24. Làm thế nào để kiểm tra phát triển hoặc sản xuất trong tệp ERB trong Rails?
- 25. Lỗi 0x80072736 khi triển khai ứng dụng?
- 26. Lỗi trình xử lý khi triển khai
- 27. Sửa đổi cách CompositeRollingAppender đổi tên tệp
- 28. "Warm Up Cache" khi triển khai
- 29. Làm cách nào để chuyển đổi tệp .tlb thành tiêu đề và tệp triển khai?
- 30. maven triển khai tệp jar bổ sung
Tôi không thích ý tưởng đặt mã xem trong các tệp cấu hình. Đây là những gì mà người trợ giúp xem là FOR. –
Chắc chắn, công bằng. Thực sự những gì tôi đang cố gắng truyền đạt là: không làm logic có điều kiện dựa trên RAILS_ENV trong lượt xem. Đó là những gì các tập tin cấu hình môi trường là FOR :-) – Ben