12/08/2018, 14:55
Tổng hợp những Gem thường sử dụng trong các dự án Ruby On Rails
1. Devise Đầu tiên không thể không kể đến gem devise sử dụng trong hầu như mọi dự án . Devise là một gem rất linh hoạt được sử trong quá trình xác thực người dùng.Nó hỗ trợ hầu hết tất cả mọi việc bạn cần trong việc quản lí và xác thực người dùng trong hệ thống của bạn.Nó cho phép bạn có thể tạo ...
1. Devise
- Đầu tiên không thể không kể đến gem devise sử dụng trong hầu như mọi dự án . Devise là một gem rất linh hoạt được sử trong quá trình xác thực người dùng.Nó hỗ trợ hầu hết tất cả mọi việc bạn cần trong việc quản lí và xác thực người dùng trong hệ thống của bạn.Nó cho phép bạn có thể tạo nhiều Model trong cùng một lúc; Nó dược xây dựng dựa trên các module nên bạn có thể chỉ sử dụng những gì bạn thực sự cần.Gem devise có 10 module chính sau: https://viblo.asia/nguyenhoa/posts/mPjxMegxv4YL
2. Can Can Can
- Nếu bạn xây dựng một ứng dụng với nhiều loại user và điều bạn lo lắng nhất chính là phân quyền cho các user của bạn.
- Một giải pháp hiệu quả cho bạn đó là sử dụng gem Cancancan để phân quyền cho các user.
- Cancancan là một thư viện phân quyền cho ruby on rails, nó hạn chế các tài nguyên mà một user được phép truy cập.
- Tất cả các quyền hạn được quy định ở một nơi duy nhất (là class Ability) và riêng biệt với controllers, views và database queries.
class Ability include CanCan::Ability def initialize(user) user ||= User.new # guest user (not logged in) if user.admin? can :manage, :all else can :read, :all end end end
https://viblo.asia/TuyenNguyen/posts/YAQrMJdrv40E
3.DELAYED_JOB
- Delayed::Job là một Ruby background job framework đã được phát triển bởi các nhân viên tại Shopify, một trang web thương mại điện tử phổ biến. Delayed::Job hoạt động bằng cách duy trì một bảng 'công việc' trong cơ sở dữ liệu để theo dõi một nhiệm vụ và vị trí của nó trong vòng đời của công việc (theo lịch trình, trạng thái, hoàn thành, đã thất bại,...). Delayed::Job tích hợp dễ dàng với Rails và ActiveRecord nếu bạn đang sử dụng một cơ sở dữ liệu quan hệ.
# without delayed_job Notifier.signup(@user).deliver # with delayed_job Notifier.delay.signup(@user) # with delayed_job running at a specific time Notifier.delay(run_at: 5.minutes.from_now).signup(@user)
https://viblo.asia/vietmt/posts/MVpvKPjZGKd
4.PAPERCLIP hoặc CarrierWave
2 Gem đều dùng để upload ảnh hay file cho dự án của bạn , cách sử dụng của cả 2 đều không quá phức tạp nhưng mình khuyên dùng carrierwave .Vì mình chưa dùng paperclip bao giờ