07/09/2018, 17:57

5 gem mở rộng cho Active Record trong rails

Active Record là 1 ORM mặc định trong rails. Dù nó có khá nhiều chức năng, 1 vài project sẽ cần thêm nhiều tùy biến. Có 1 vài gem có thể mở rộng các chức năng của Active Record, làm cho nó mạnh mẽ và linh hoạt hơn. 1. Deep cloneable Nếu bạn muốn tạo 1 bản sao của Active Record object và các ...

Active Record là 1 ORM mặc định trong rails. Dù nó có khá nhiều chức năng, 1 vài project sẽ cần thêm nhiều tùy biến. Có 1 vài gem có thể mở rộng các chức năng của Active Record, làm cho nó mạnh mẽ và linh hoạt hơn.

1. Deep cloneable

Nếu bạn muốn tạo 1 bản sao của Active Record object và các quan hệ của nó, deep cloneable sẽ giúp được bạn. Nó thêm các phương thức vào đối tượng để sao chép chính bản thân nó. Deep cloneable cho bạn 1 bản sao chính xác và hoàn chỉnh mà không tốn nhiều công sức.

Link: https://github.com/moiristo/deep_cloneable

2. Act as taggable on

Để phân loại, cấu trúc dữ liệu trên blog, website hay mạng xã hội, bạn có thể cần thêm tag. Act as taggable on là 1 gem cho phép bạn gắn thẻ các đối tượng theo 1 vài thuộc tính phụ thuộc vào nội dung của application.

Link: https://github.com/mbleigh/acts-as-taggable-on

3. Paper Trail

Paper Trail cho phép bạn tránh khỏi việc làm hỏng project khi bạn không thể undo hoặc redo các thay đổi đối với models. Với Paper Trail, bạn có các version đối với models, thêm, undo hay redo, restore dữ liệu, làm việc với model association,…

Link: https://papertrailapp.com/

4. Kaminari

Kaminari là 1 gem cho chức năng phân trang 1 cách mạnh mẽ, rõ ràng, chi tiết. Mục tiêu để xử lý các ActiveRecord query

Link: https://github.com/kaminari/kaminari

5. Globalize

Khi cần biên dịch ứng dụng của bạn ra nhiều ngôn ngữ khác nhau, ta sẽ cần phải quốc tế hóa nó. Globalize là gem được phát triển bởi I18n API. Globalize thêm các bản dịch của nội dung trang web vào Active Record models, đặc biệt hữu dụng khi bạn xử lý với bản dịch của cơ sở dữ liệu thay đổi.

Link: https://github.com/globalizejs/globalize

Source: https://rubygarage.org/blog/best-ruby-gems-we-use

0