Xây dựng ứng dụng cho Admin với Gem "Rails Admin" kết hợp gem Devise
1. Giới thiệu Để xây dựng phần ứng dụng quản lý cho Admin không phải là một điều đơn giản và có thể mất rất nhiều thời gian của các lập trình viên. Tuy nhiên với gem Rails Admin, nó sẻ giúp cho các lập trình viên RoR có thể xây dựng được ứng dụng Admin chỉ thông qua vài bước. Bài viết lần này ...
1. Giới thiệu
Để xây dựng phần ứng dụng quản lý cho Admin không phải là một điều đơn giản và có thể mất rất nhiều thời gian của các lập trình viên. Tuy nhiên với gem Rails Admin, nó sẻ giúp cho các lập trình viên RoR có thể xây dựng được ứng dụng Admin chỉ thông qua vài bước. Bài viết lần này mình xin giới thiệu cách cài đặt gem Rails Admin lên dự án của mình.
2.Cài đặt Rails Admin
Thêm vào gemfile:
gem "rails_admin", "~> 1.2"
Sau đó chạy lệnh bundle install và tiếp tục lệnh sau để cài đặt:
rails g rails_admin:install
Kiểm tra file router.rb nếu chưa có thì thêm dòng code sau vào
mount RailsAdmin::Engine => "/admin", as: :rails_admin
Bây giờ bạn có thể vào url http://<domain của bạn>/admin để xem kết quả. Với mỗi model trong dự án của bạn gem sẽ sinh ra 1 trang quản lý bao gồm các chức năng Create, Update, Delete, Filter, Search... Để tạo phần đăng nhập cho trang quản lý admin trong bài viết lần này mình xin hướng dẫn cách kết hợp gem devise vào
3. Cài đặt Devise
- Tạo 1 bảng admin và model admin (chứa các tài khoản có thể đăng nhập vào trang quản lý dành cho admin) ví dụ mình tạo bảng và model Admin với 1 trường trường email(trường password sẻ được sinh ra khi add devise cho model)
rails generate model Admin email:string
chạy rails db:migrate để tạo bảng Admin 2. Thêm gem devise vào gemfile
gem "devise"
chạy bundle install để cài đặt devise 3. Thêm gem divise và thêm divise cho model Admin
rails generate devise Admin
Kiểm tra file router.rb nếu chưa có thì thêm dòng code sau
devise_for :admins
Các bạn có thể config thêm cho gem divise ở các bài viết khác tại viblo. 4. Config gem rails_admin: Thêm đoạn mã sau vào file /config/initializers/rails_admin.rb
RailsAdmin.config do |config| config.authenticate_with do warden.authenticate! scope: :admin end config.current_user_method(&:current_admin) end
Xong bây giờ bạn restart server và vào đường dẫn http://<url của bạn>/admin bạn sẻ thấy trang yêu cầu đăng nhập trước khi có thể sử dụng các chưng năng trong trang quản lý cho admin (thêm admin mới vào bảng admin nếu chưa có) Bài viết còn nhiều thiếu sót mong nhận được sự góp ý của tất cả mọi người.