Computer >> Máy Tính >  >> Lập trình >> Ruby

Các tính năng ít được biết đến trong Rails 4.2

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:

config / redis.yml
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:

config / redis.yml
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!)