Hi, là Tùng đây. Hôm nay mình sẽ chia sẻ các gem mình dùng trong các dự án từ trước tới giờ. Mong rằng sẽ giúp chúng ta đi nhanh hơn, nhờ những “bánh xe” đã được xây dựng sẵn này.

rails-i18n

Các bạn biết là, ruby là người nhật tạo ra đúng không. Và ruby on rails thì được nhiều dự án của nhật chào đón. Vì thế, nếu làm với các dự án Nhật hay các dự án đa ngôn ngữ, chúng ta sẽ cần đến một gem giúp dễ dàng hơn trong việc chuyển đổi qua lại giữa các ngôn ngữ trong dự án của mình.

https://guides.rubyonrails.org/i18n.html

rack-cors

Ok nếu các bạn viết rails mà view dùng luôn của rails hỗ trợ thì thôi. Nhưng nếu như bạn cần export thông tin, dữ liệu, hay chỉ đơn thuần là muốn một client khác trỏ tới để server bạn làm điều gì đó thì rack-cors sẽ làm việc này.

https://github.com/cyu/rack-cors

paperclip

Dù bây giờ rails 6 đã hỗ trợ rất tốt việc upload file lên, tuy nhiên nếu như có thứ gì đó đơn giản hơn, nhanh chóng hơn để upload file, ảnh, tài liệu nên server thì sẽ đỡ tốn thời gian hơn đấy. Và mình thì chọn paperclip

https://github.com/thoughtbot/paperclip

capistrano

Bạn có muốn chaỵ 1 câu lệnh ở terminal rồi trang web bạn làm tự động đưa phiên bản mới nhất ra public không? Có đấy, hãy thử capistrano và rút ngắn thời gian deploy nhờ tự động nào.

https://github.com/capistrano/capistrano

omniauth

Một ngày đẹp trời, các bạn muốn trang web của mình cho người dùng đăng nhập bằng google – Facebook …? Cụ thể thì thằng omniauth này sẽ giúp cũng ta dễ dàng tạo 1 trang web cho người dùng xác thực bằng mạng xã hội.

https://github.com/omniauth/omniauth

cocoon

Xem nào, mội người thì có thể tạo nhiều câu hỏi, một câu hỏi thì có thể có nhiều đáp án… Ừmmm sao lồng nhau nhiều thế nhỉ form input sẽ trông như thế nào ta? Thôi bỏ đi dùng Cocoon sẽ giúp chúng ta mọi thứ, chỉ cần làm theo docs rất dễ dàng, nhanh gọn là đã có form nested thêm sửa xoá rồi.

https://github.com/nathanvda/cocoon

letter_opener

Một trong những gem tuyệt vời, rút ngắn thời gian của mình nhiều lắm. Khi làm đến phần gửi mail, không có nó, mình cứ mất time đợi mail gửi rồi check kết quả. Thằng letter_opener này sẽ dùng trình duyệt, fake quá trình gửi mail và cho chúng ta kết quả gửi mail luôn.

https://github.com/ryanb/letter_opener

redcarpet

Bạn có biết rằng mình viết bài viết này bằng gì không? Bằng Markdown đó. Nếu bạn cũng muốn người dùng trên trang web của bạn viết md, xem sau khi viết thì sao nhỉ? redcarpet Sẽ giải quyết việc này.

https://github.com/vmg/redcarpet

devise

Thôi, cái này ai mà code rails không biết nữa thì bỏ :))). Cái này sẽ làm tất tần tật từ a-z các vấn đề liên quan tới authentication, nó là một giải pháp tuyệt vời.

https://github.com/heartcombo/devise

httparty

Nếu bạn muốn gửi một http request tới 1 side khác thì sao nhỉ? Dùng httparty sẽ sẽ dàng hơn đó.

https://github.com/jnunemaker/httparty