Bản beta đầu tiên của Rails 4.2 đã được công bố vào tuần trước và nó trông rất tuyệt vời. Tôi thực sự vui mừng sử dụng hỗ trợ ActiveJob, Web Console, A đủ Record và Foreign Key trong các ứng dụng của riêng mình.
Nhưng vẻ đẹp của Rails nằm ở chi tiết. Và nếu bạn đào sâu một chút, bạn sẽ tìm thấy một số tính năng ít được quảng cáo hơn sẽ cải thiện hoàn toàn công việc hàng ngày của bạn với Rails.
Dễ dàng tải các tệp cấu hình
OK, tôi có thể thiên vị. Nhưng có một cách tích hợp để tải các tệp cấu hình sẽ rất tuyệt vời.
config_for
, mới trong Rails 4.2, hoạt động chính xác như bạn mong đợi:
development:
host: localhost
port: 6379
test:
host: localhost
port: 6379
production:
host: redis-production
port: 6379
irb(main):001:0> Rails.application.config_for(:redis)
=> {"host"=>"localhost", "port"=>6379}
Nghĩa là, nếu bạn gọi config_for(:redis)
, nó sẽ tìm kiếm config/redis.yml
trong ứng dụng Rails của bạn, phân tích cú pháp và trả về cấu hình phù hợp cho RAILS_ENV
của bạn .
Nó thậm chí còn cho phép bạn đặt ERB vào yaml của mình:
development:
host: localhost
port: <%= ENV['REDIS_PORT'] %>
test:
host: localhost
port: <%= ENV['REDIS_PORT'] %>
production:
host: redis-production
port: <%= ENV['REDIS_PORT'] %>
$ REDIS_PORT=6380 bin/rails c
Loading development environment (Rails 4.2.0.beta1)
irb(main):001:0> Rails.application.config_for(:redis)
=> {"host"=>"localhost", "port"=>6380}
Nếu bạn định cấu hình nhiều dịch vụ trong ứng dụng của mình, điều này sẽ giúp các trình khởi tạo của bạn dễ đọc hơn nhiều.
Khởi động ứng dụng của bạn
Hầu hết các ứng dụng Rails đều cần bạn chạy một số lệnh trước khi có thể dùng thử. Ngay cả những ứng dụng Rails gần như trống rỗng vẫn cần thiết lập cơ sở dữ liệu trước khi chúng khởi động.
Vì vậy, Rails, một lần nữa đi với quy ước về cấu hình, đã tạo một nơi dành riêng cho mã thiết lập của bạn:bin/setup
.
Mặc định là tốt. Nhưng bin/setup
cũng là nơi để đặt bất kỳ mã nào khác mà bạn cần để khởi động ứng dụng của mình.
Vì vậy, đây là quy ước, nếu bạn đã viết tập lệnh bootstrap cho ứng dụng của mình, hãy đổi tên nó thành bin/setup
, vì vậy những người sử dụng ứng dụng của bạn có thể bắt đầu dễ dàng.
bin/setup
cung cấp cho bạn ít quyết định hơn khi bạn tạo các ứng dụng Rails mới. Và khi bạn có thói quen chạy bin/setup
sau khi bạn git pull
, bạn sẽ không bao giờ phải nhớ chạy rake db:setup
khi bạn tạo lại một ứng dụng mới.
Chuyển đổi các giá trị băm của bạn
Đây là một thứ khác mà tôi cần thường xuyên đến mức tôi ước nó được tích hợp sẵn vào Ruby. Khi bạn gọi transform_values
trên một hàm băm, nó hoạt động giống như gọi map
trên các giá trị băm và trả về một giá trị băm mới với các khóa ban đầu được liên kết với các giá trị được thay thế:
h = {a: 1, b: 2, c: 3}
h.transform_values { |v| v * 2 } # => {a: 2, b: 4, c: 6}
Đủ đơn giản. Nhưng bạn sẽ ngạc nhiên về mức độ hữu dụng của nó.
Phần thưởng:Cấu hình khác!
Rails 4.2 cung cấp một cách đơn giản để thiết lập cấu hình chung của riêng bạn:
Rails.application.config.x.some_configuration_key = "Some Value"
Rails.application.config.x.some_configuration_key # => "Some Value"
Rails.configuration.x.some_configuration_key # => "Some Value"
Điều này đặc biệt hiệu quả khi bạn kết hợp nó với config_for
:
app_config = Rails.application.config_for(:app)
Rails.application.config.x.block_phone_calls = app_config["block_phone_calls"]
Và hơn thế nữa!
Có vẻ như Rails 4.2 được thiết lập để trở thành một bản phát hành tuyệt vời. Nhưng chính những cải tiến nhỏ đã làm cho việc làm việc trong Rails hàng ngày trở nên tuyệt vời. Vì vậy, nếu bạn chưa có, hãy xem nhanh Ghi chú phát hành 4.2 và xem bạn có thể tìm thấy những cải tiến hữu ích nào khác.
(Và nếu bạn làm tìm một số nội dung thú vị, đừng giữ nó cho riêng mình. Chia sẻ nó ở đây, để tất cả chúng ta có thể học được điều gì đó mới!)