Những điểm mới trong Rails 5
Bài này chúng ta sẽ cùng điểm qua những thay đổi lớn trên bản Rails 5. Yêu cầu của Rails 5 đó là bạn phải cài đặt Ruby v 2.2.2 trở lên thì mới có thể chạy. Sau đây mình sẽ liệt ke một vài diểm mới ActionCable đây là một tính năng Rails quyết định hỗ trợ từ bản 5, nhiệm vụ của nó là bạn sẽ ...
Bài này chúng ta sẽ cùng điểm qua những thay đổi lớn trên bản Rails 5.
Yêu cầu của Rails 5 đó là bạn phải cài đặt Ruby v 2.2.2 trở lên thì mới có thể chạy. Sau đây mình sẽ liệt ke một vài diểm mới
ActionCable
đây là một tính năng Rails quyết định hỗ trợ từ bản 5, nhiệm vụ của nó là bạn sẽ không phải tốn quá nhiều công sức để thực hiện một vài chức năng realtime (thời gian thực) bên trong ứng dụng Rails của chúng ta. ActionCable sử dụng Redis (cơ chế Pub/Sub đã giới thiệu bài trước) để có thể hỗ trợ phần back-end. (Vì vậy để sử dụng được bạn cần cài đặt Redis trên hệ thống) ActionCable tích hợp với websocket để bạn có thể làm việc với front-end và back-end một cách dễ dàng. (Bạn có thể xem thêm về websocket tại đây) Về cảm nhận cá nhân, có thể thấy rằng Rails đã chú trọng đến vấn đề khá nan giải lâu nay và đã không phụ lòng các dev Rails. Tiếp theo có thể kể đến việc Rails 5 chú trọng đến thế giới Mobile, vốn được đánh giá từ trước đến này Rails khá thích hợp dùng làm Back-end cho Mobile. Nay Rails cho phép tạo ứng dụng chỉ hỗ trợ api thông qua lệnh sau:
rails new backend --api
Rails cho phép tạo ứng dụng này thông qua việc tích hợp gem ** active_model_serializers** Về đánh giá cá nhân thì với cách này Rails sẽ mở rộng thị trường ảnh hưởng hơn xưa. Tuy nhiên với người lập trình api lâu có thể thấy rằng việc viết api cho ứng dụng đâu đơn giản chỉ là những xử lý và dữ liệu trả về có mức độ, nên nhiều khi bạn cần phải custom nhiều với cách viết mới này nhé.
Attribute API
Chỉ cần với khai báo attribute trong Model nay bạn có thể custom lại thuộc tính thuộc/ hoặc không thuộc Model. Tránh việc sử dụng quá nhiều serialize trong Model của bạn. ApplicationRecord sẽ cập bến Rails 5, đây là super class của ActiveRecord::Base Mục đích chính là nhắm tráng việc monkey path ActiveRecord. Cá nhân thấy rằng với thay đổi này, khá nhiều gem phải sữa chữa trong lõi để có thể sử dụng trong Rails 5 được.
Một vài thay đổi khác
Một điểm thay đổi nhỏ nữa là ActiveRecord đã hỗ trợ hàm OR trong truy vấn Một điểm đáng chú ý ít được nhắc đến là Rails 5 cũng sẽ hỗ trợ cơ chế auto loading constant (Tự động load lại biến hằng – Nếu bạn đã từng thêm biến hằng trong initializer thì phải restart server mới có hiệu lực) Turbolink 3.0 cũng sẽ có trong Rails 5 do vậy ứng dụng chúng ta sẽ nhanh và hiệu quả hơn nữa. Một số lệnh Rake sẽ thay thế bằng Rails Đơn giản suy nghĩ rằng rake db:migrate nay sẽ là rails db:migrate Việc này được giải thích rằng để phù hợp, và hợp lý hơn đối với ứng dụng rails.
Tổng kết
Bài viết này mang nhằm giới thiệu những điểm khác biết của Rails 5 và các version trước. Cảm ơn các bạn đã theo dõi