Cách tạo một project Rails/ReactJS sử dụng gem react_on_rails đơn giản và deploy lên heroku

Giới thiệu

Reactjs hiện đang là một trong những sự lựa chọn hàng đầu của các lập trình viên về phát triển các ứng dụng web, đối với framework Ruby on Rails thì cũng đã tích hợp được React vào trong source code của project. Có nghĩa là chúng ta chỉ cần 1 server để deploy và có thể chỉ cần sử dụng Rails routes mà không cần dùng đến React routes. Để làm được điều này thì có một vài cách, trong trường hợp này mình sử dụng gem webpacker và gem react_on_rails để thực hiện.

Tạo project sử dụng gem react_on_rails

Đầu tiên chúng ta tạo 1 project rails như bình thường:

Sau đó mở file Gemfile và thêm vào 2 dòng sau:

gem "webpacker", "~> 3" gem "react_on_rails", "11.1.4"

sau đó quay lại terminal và chạy "bundle install"

Bạn nào chưa cài yarn thì ấn vào đây để xem cách cài nhé, yarn nó cũng có chức năng như npm thôi 😄

Tiếp theo chạy lần lượt 2 câu lệnh này để cài đặt webpacker và reactjs

Sau khi xong chúng ta cần commit lại và tiếp tục chạy câu lệnh sau để react_on_rails tự cài đặt:

Cơ bản là xong rồi, chúng ta chạy câu lệnh sau để start project:

Nếu bạn nào chưa cài foreman thì cài như sau là được, nhớ chạy bằng sudo nha (mình chụp nhanh quá quên thêm sudo 😄 ):

Ok, giờ thì mở trình duyệt lên và truy cập localhost:3000/hello_world để xem kết quả nhé, và đã xuất hiện dấu hiệu của react

Sau khi đã hoàn thành project, nếu bạn đang sử dụng sqlite thì cần chuyển sang postgre hoặc mysql, sau đó thêm file có tên là Procfile vào trong project ( cùng cấp với các folder app, config, ...) để có thể start được project bên phía heroku. Nội dung bên trong ghi như sau: web: bundle exec puma -C config/puma.rb sau đó lưu lại và commit tất cả trước khi deploy.

Deploy project lên heroku

Cấu hình server heroku:

Chúng ta sẽ tạo 1 app như bình thường: Tiếp theo chọn vào mục Setting, lăn chuột xuống phần Buildpacks và thêm buildpack như mình: Nhớ thêm đúng thứ tự như mình nhé. Sau đó mở terminal lên và chạy lệnh heroku git:remote -a test-0874 thay test-0874 bằng tên app heroku của bạn là được, rồi chạy lệnh git push heroku master là xong. Chúc các bạn thành công!!! 😄

Tham khảo