วิธีการ Setup React ใน Ruby on Rails

Suzuki Aki
odds.team
Published in
2 min readJul 30, 2020

การพัฒนา web application สมัยนี้ มันต้องมีฟีเจอร์ที่ interactive เยอะๆ และซับซ้อนมากๆ ครั้นจะมาใช้ Javascript เพียวๆ หรือ jQuery ที่ติดมากับ Framework ทั่วๆไป บางครั้งก็คงไม่พอ วันนี้ก็เลยจะมาแนะนำ วิธีการ setup React ใน Ruby on Rails

ขั้นแรก ใครยังไม่ install ruby และ rails ก็ install ก่อน ดูตัวอย่างการ install ได้ที่นี่

ใน rails version ล่าสุด (v6) มันมาพร้อมกับ webpacker อยู่แล้ว และสามารถใส่ option ที่สามารถ install react พร้อมกับ สร้าง application ได้เลย

rails new my_app --webpack=react

หลังจากที่คำสั่งทำงานเสร็จแล้ว ถ้าเราเข้าไปดูในโฟลเดอร์ app/javascript/packs จะพบไฟล์ hello_react.jsx ที่ generate มาให้

.
├── application.js
└── hello_react.jsx

แต่ไฟล์ hello_react.jsx นี้ยังไม่ถูกใช้ เดี๋ยวเราลองมา render react component นี้กัน

สร้าง controller ใหม่ ชื่อ static

rails g controller Static

จากนั้นไปที่ไฟล์ static_controller.rb เพิ่ม method index แบบนี้

class StaticController < ApplicationController
def index
end
end

สร้างไฟล์ view ใหม่ที่ app/views/static/index.html.erb และ include javascript ไฟล์ที่ render react component แบบนี้ ชื่อ hello_react ก็มาจากชื่อไฟล์ hello_react.jsx ถ้าจะเปลี่ยนชื่อไฟล์ก็ต้องเปลี่ยนตรง javascript_pack_tag ให้ตรงกัน

<%= javascript_pack_tag 'hello_react' %>

และต้องไปกำหนด index ที่ config/routes.rb ด้วย

Rails.application.routes.draw do
root "static#index"
end

จากนั้นรัน server ด้วย rails s และไปที่ http://localhost:3000 เพื่อดูหน้าเว็บ

ทีนี้ถ้าเราลองแก้ component ดู จะพบว่า มันต้อง refresh และใช้เวลา compile ค่อนข้างนาน เดี๋ยวเราจะมาใช้ webpack-dev-server กัน ซึ่งถูก install มาให้แล้ว

bin/webpack-dev-server

หลังจากที่รัน webpack-dev-server รันขึ้นแล้ว เวลาแก้โค้ด Javascript มันจะ compile ให้อัตโนมัติและ refresh หน้าจอให้ด้วย

วิธีนี้เป็นวิธี setup แบบ Single page application ไม่ได้ render จาก server ถ้าอยากให้ component render จาก server เลยก็ต้องใช้ library เช่น react-rails หรือ react_on_rails

--

--