Quickstarters
Feature Overview
How to Build a Backend for Ruby On Rails?
32 นาที
บทนำ ในบทเรียนนี้ คุณจะได้เรียนรู้วิธีการสร้างแบ็กเอนด์สำหรับ ruby on rails โดยใช้ back4app เราจะสำรวจขั้นตอนสำคัญในการรวมแอปพลิเคชัน rails ของคุณเข้ากับฟีเจอร์สำคัญของ back4app—เช่น การโต้ตอบกับฐานข้อมูล, ฟังก์ชัน cloud code, rest และ graphql apis, การตรวจสอบสิทธิ์ผู้ใช้, และการค้นหาแบบเรียลไทม์ (live queries)—ทั้งหมดทำงานอยู่บนฝั่งเซิร์ฟเวอร์ โดยการใช้ภาษาโปรแกรม ruby คุณจะสร้างสถาปัตยกรรมที่แข็งแกร่งและปรับขนาดได้ซึ่งสอดคล้องกับรูปแบบ view controller mvc ใน rails ช่วยให้นักพัฒนาสามารถเร่งกระบวนการพัฒนาแอปพลิเคชันเว็บ คุณจะค้นพบด้วยว่า back4app ช่วยลดเวลาและความพยายามได้อย่างมากโดยการทำให้การจัดการเซิร์ฟเวอร์และฐานข้อมูลง่ายขึ้น ฟีเจอร์อัตโนมัติเหล่านี้สามารถช่วยคุณประหยัดจากการตั้งค่าเซิร์ฟเวอร์เว็บด้วยตนเองหรือจัดการกับโครงสร้างพื้นฐานที่ซับซ้อน เมื่อสิ้นสุด คุณจะมีโครงสร้างที่ยืดหยุ่นและปลอดภัย พร้อมสำหรับการผลิตหรือการขยายเพิ่มเติม—เช่น การรวมเพิ่มเติมและตรรกะที่กำหนดเองขั้นสูง ไม่ว่าคุณต้องการให้บริการเว็บเพจหรือพัฒนาแอปพลิเคชันเว็บที่ขับเคลื่อนด้วยข้อมูล rails และ back4app เสนอความร่วมมือที่ไร้รอยต่อในการสร้างโซลูชันสมัยใหม่ในภาษาการเขียนโปรแกรมยอดนิยม ข้อกำหนดเบื้องต้น ในการทำตามบทเรียนนี้ คุณจะต้องมี บัญชี back4app และโครงการ back4app ใหม่ เริ่มต้นใช้งาน back4app https //www back4app com/docs/get started/new parse app หากคุณยังไม่มีบัญชี คุณสามารถสร้างบัญชีได้ฟรี ทำตามคำแนะนำข้างต้นเพื่อเตรียมโครงการของคุณ สภาพแวดล้อมการพัฒนา ruby on rails ตรวจสอบให้แน่ใจว่าคุณติดตั้ง ruby (เวอร์ชัน 2 7 หรือสูงกว่า) และ gem rails (rails 6 หรือสูงกว่า) ติดตั้ง rails https //guides rubyonrails org/getting started html parse ruby client หากคุณตั้งใจที่จะใช้ parse sdk โดยตรง คุณสามารถติดตั้ง parse ruby client https //github com/parse community/parse sdk ruby gem เพื่อจัดการการดำเนินการข้อมูลกับ back4app ความคุ้นเคยกับ rails mvc หากคุณเป็นมือใหม่ใน ruby on rails ให้ตรวจสอบ คู่มือ rails อย่างเป็นทางการ https //guides rubyonrails org/ หรือบทเรียนสำหรับผู้เริ่มต้นเพื่อทำความเข้าใจเกี่ยวกับ สถาปัตยกรรม mvc ของ rails ก่อนเริ่ม ตรวจสอบให้แน่ใจว่าข้อกำหนดเบื้องต้นเหล่านี้อยู่ในสถานที่ก่อนที่คุณจะเริ่มต้น การตั้งค่าโครงการ back4app ของคุณพร้อมกับ แอปพลิเคชัน rails ที่พร้อมใช้งานจะช่วยให้คุณมีประสบการณ์การเรียนรู้ที่ราบรื่น ขั้นตอนที่ 1 – สร้างโครงการใหม่บน back4app และเชื่อมต่อ สร้างโครงการใหม่ ขั้นตอนแรกในการตั้งค่า แบ็กเอนด์ด้านเซิร์ฟเวอร์ สำหรับแอปพลิเคชัน rails ของคุณคือการสร้างโครงการใหม่บน back4app หากคุณยังไม่ได้ทำ เข้าสู่ระบบบัญชี back4app ของคุณ คลิกที่ปุ่ม “new app” ในแดชบอร์ด back4app ของคุณ ตั้งชื่อแอปของคุณ (เช่น “rails backend tutorial”) เมื่อโปรเจกต์ถูกสร้างขึ้น มันจะปรากฏในแดชบอร์ด back4app ของคุณ โปรเจกต์ใหม่นี้เป็นแกนหลักของการตั้งค่าทั้งหมดในบทเรียนนี้ เชื่อมต่อกับ parse sdk (ตัวเลือก parse ruby client) เพื่อทำให้ การโต้ตอบกับฐานข้อมูล และการค้นหาข้อมูลแบบเรียลไทม์มีประสิทธิภาพ back4app ใช้แพลตฟอร์ม parse หากคุณต้องการเชื่อมต่อ เซิร์ฟเวอร์ rails ของคุณกับ parse โดยตรง คุณสามารถติดตั้ง parse ruby client gem ได้ มิฉะนั้น คุณสามารถใช้ rest หรือ graphql endpoints มาตรฐาน ดึงคีย์ parse ของคุณ ในแดชบอร์ด back4app ของคุณ ไปที่ “app settings” หรือ “security & keys” ของแอปของคุณเพื่อค้นหา application id และ rest api key คุณจะได้รับ parse server url (เช่น https //parseapi back4app com ) เพิ่ม gem parse ruby client ไปยัง gemfile gem 'parse ruby client' จากนั้นรัน bundle install เริ่มต้น parse ใน initializer เช่น config/initializers/parse rb \# config/initializers/parse rb require 'parse' parse init application id 'your application id', api key 'your rest api key', server url 'https //parseapi back4app com' ในจุดนี้ แอปพลิเคชัน rails ของคุณสามารถสื่อสารกับ back4app เพื่อจัดเก็บและเรียกคืนข้อมูล การจัดการตรรกะที่กำหนดเอง และอื่นๆ วิธีการที่รวมเข้าด้วยกันนี้ทำให้การจัดการ backend ของแอป ruby on rails ของคุณง่ายขึ้น ขั้นตอนที่ 2 – การตั้งค่าฐานข้อมูล การสร้างโมเดลข้อมูล ในหลาย ๆ เว็บแอปพลิเคชัน , คุณกำหนดโครงสร้างข้อมูลของคุณใน rails โดยใช้การโยกย้าย activerecord ด้วย back4app คุณยังมีตัวเลือกในการสร้างสคีมาของคุณโดยตรงบนแดชบอร์ด ตัวอย่างเช่น หากคุณมี todo โมเดล ไปที่ “ฐานข้อมูล” ในแดชบอร์ด back4app ของคุณ สร้างคลาสใหม่ ชื่อ “todo” และเพิ่มคอลัมน์เช่น title (string) และ iscompleted (boolean) back4app รองรับ string , number , boolean , date , file , pointer , relation , array , geopoint , และ polygon rails มักจะจัดการสิ่งเหล่านี้ภายในการกำหนดโมเดลของมัน แต่คุณยังสามารถให้ parse สร้างคอลัมน์โดยอัตโนมัติเมื่อบันทึกครั้งแรก (หากคุณใช้ parse sdk หรือ rest/graphql apis) การสร้างโมเดลข้อมูลโดยใช้ ai agent ai agent ของ back4app สามารถทำการสร้าง schema โดยอัตโนมัติ เปิด ai agent จากแดชบอร์ดของคุณ อธิบายโมเดลข้อมูลของคุณ (เช่น “กรุณาสร้าง todo app ใหม่พร้อม schema ของคลาสที่สมบูรณ์”) ให้ตัวแทนสร้าง schema ของคุณ การอ่านและเขียนข้อมูลโดยใช้ sdk หากคุณเลือกที่จะรวม parse ruby client , คุณสามารถเก็บบันทึกได้ดังนี้ \# app/controllers/todos controller rb def create todo class = parse object new('todo') todo class\['title'] = params\[ title] todo class\['iscompleted'] = false begin todo class save render json { message 'todo saved successfully' } rescue => e render json { error e message }, status 500 end end def index query = parse query new('todo') results = query get render json results end การอ่านและเขียนข้อมูลโดยใช้ rest api นอกจากนี้ คุณสามารถใช้ rest calls จากภายในโค้ด rails ของคุณ (หรือจากไคลเอนต์ภายนอกใด ๆ) ตัวอย่างเช่น เพื่อสร้าง todo curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "finish rails guide", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo การอ่านและเขียนข้อมูลโดยใช้ graphql api back4app ยังมี graphql mutation { createtodo(input { fields { title "plan web pages" iscompleted false } }) { todo { objectid title iscompleted } } } การทำงานกับ live queries (ตัวเลือก) หากคุณต้องการการอัปเดตแบบเรียลไทม์ใน แอปพลิเคชัน rails , คุณสามารถสมัครสมาชิก live queries จากฝั่งหน้าเว็บหรือไคลเอนต์ websocket เปิดใช้งาน live queries ใน การตั้งค่าเซิร์ฟเวอร์ ของคุณใน back4app จากนั้นเชื่อมต่อกับ wss\ //your subdomain b4a io เพื่อรับข้อมูลการเปลี่ยนแปลงอย่างต่อเนื่อง สิ่งนี้มีประโยชน์สำหรับ แอปพลิเคชันเว็บ ที่ต้องการการรีเฟรชข้อมูลทันที ขั้นตอนที่ 3 – การใช้ความปลอดภัยด้วย acls และ clps ภาพรวมสั้น ๆ ความปลอดภัยเป็นสิ่งสำคัญใน การพัฒนาแอปพลิเคชันเว็บ back4app มี access control lists (acls) และ class level permissions (clps) เพื่อควบคุมการมองเห็นข้อมูลทั้งในระดับวัตถุและระดับคลาส สิ่งนี้ช่วยให้มั่นใจได้ว่าผู้ใช้ที่ได้รับการตรวจสอบหรือได้รับอนุญาตเท่านั้นที่สามารถอ่าน/เขียนข้อมูลที่ละเอียดอ่อนได้ การตั้งค่า class level permissions ไปที่ฐานข้อมูล ในแดชบอร์ด back4app ของคุณ เลือกคลาส (เช่น “todo”) เปิดแท็บ clps เพื่อกำหนดการเข้าถึงการอ่าน/เขียนตามบทบาท ผู้ใช้ที่ได้รับการตรวจสอบ หรือสาธารณะ การกำหนดค่า acls คุณสามารถตั้งค่า acl บนวัตถุเพื่อให้ผู้ใช้เฉพาะสามารถอ่านหรือแก้ไขได้ ใน rails กับ parse ruby client , อาจดูเหมือน todo = parse object new('todo') acl = parse acl new \# set read/write for a user acl set read access for(user id, true) acl set write access for(user id, true) todo acl = acl todo save ขั้นตอนที่ 4 – การเขียนฟังก์ชัน cloud code ทำไมต้องใช้ cloud code cloud code รัน javascript ฝั่งเซิร์ฟเวอร์, ช่วยให้นักพัฒนา สามารถเพิ่มตรรกะที่กำหนดเอง, ทริกเกอร์, และการตรวจสอบโดยไม่ต้องจัดการกับ เว็บเซิร์ฟเวอร์ คุณอาจต้องการจัดการตรรกะเซิร์ฟเวอร์เพิ่มเติมหรือทำการตรวจสอบก่อนที่จะบันทึกข้อมูล ฟังก์ชันตัวอย่าง ด้านล่างนี้คือตัวอย่างใน javascript ขณะที่ เซิร์ฟเวอร์ rails จัดการแอปหลัก, คุณยังสามารถใช้ cloud code เพื่อประมวลผลข้อมูล parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); การปรับใช้ ปรับใช้ผ่าน back4app cli หรือจาก back4app dashboard cloud code เป็นวิธีที่สะดวกในการรวมตรรกะที่ใช้ร่วมกันระหว่างลูกค้าทั้งหมด ไม่ว่าจะใช้ ภาษาการเขียนโปรแกรม ใดก็ตาม ด้วยการสนับสนุนโมดูลที่ใช้ node (npm) คุณสามารถรวมแพ็คเกจภายนอกได้อย่างราบรื่น ขั้นตอนที่ 5 – การกำหนดค่า authentication เปิดใช้งานการตรวจสอบสิทธิ์ผู้ใช้ back4app จัดการการลงทะเบียนผู้ใช้, การเข้าสู่ระบบ, และเซสชันด้วยคลาสผู้ใช้ที่สร้างขึ้นใน parse คุณสามารถสร้างผู้ใช้ด้วยการเรียก rest หรือผ่าน sdk อย่างเป็นทางการใด ๆ curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"username" "john", "password" "secretpass"}' \\ https //parseapi back4app com/users การเข้าสู่ระบบผ่านโซเชียล คุณสามารถรวมการลงชื่อเข้าใช้ facebook, google หรือ apple ได้ แต่ละผู้ให้บริการมีวิธีการที่แตกต่างกันเล็กน้อย แต่หลักการหลักคือการแลกเปลี่ยนโทเค็นกับ parse ตรวจสอบเอกสาร เอกสารการเข้าสู่ระบบผ่านโซเชียล https //www back4app com/docs/platform/sign in with apple สำหรับรายละเอียดเกี่ยวกับวิธีการรวมสิ่งเหล่านี้เข้ากับ แอปพลิเคชัน rails ของคุณ ขั้นตอนที่ 6 – การจัดการการจัดเก็บไฟล์ การตั้งค่าการจัดเก็บไฟล์ การใช้ parse สำหรับไฟล์นั้นง่ายเพียงแค่การอัปโหลดผ่าน parse api หากคุณใช้ parse ruby client file data = file open('path/to/image jpg') parse file = parse file new('image jpg', file data) begin parse file save puts "file uploaded #{parse file url}" rescue => e puts "error uploading file #{e message}" end ตัวอย่าง คุณสามารถแนบไฟล์นี้กับวัตถุได้ photo obj = parse object new('photo') photo obj\['imagefile'] = parse file photo obj save ขั้นตอนที่ 7 – การตรวจสอบอีเมลและการรีเซ็ตรหัสผ่าน เปิดใช้งานการตรวจสอบอีเมล ในแดชบอร์ด back4app ของคุณภายใต้ การตั้งค่าอีเมล ตั้งค่าการรีเซ็ตรหัสผ่าน โดยการปรับแต่งเทมเพลตอีเมลและการตั้งค่าชื่อโดเมน กระตุ้นการไหลของอีเมล โดยอัตโนมัติหลังจากการลงทะเบียนของผู้ใช้หรือเมื่อผู้ใช้ขอรีเซ็ตรหัสผ่าน สิ่งนี้ช่วยให้มั่นใจในความปลอดภัยที่ดีขึ้นและช่วยยืนยันความเป็นเจ้าของอีเมลที่ถูกต้อง ขั้นตอนที่ 8 – การกำหนดตารางงานด้วย cloud jobs งานคลาวด์ หากคุณต้องการทำให้การทำงานอัตโนมัติเช่นการทำความสะอาดข้อมูลหรือการส่งสรุปรายวัน ใช้งาน cloud jobs parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); try { const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; } catch (err) { throw new error('error during cleanup ' + err message); } }); คุณสามารถกำหนดตารางงานดังกล่าวในแดชบอร์ด back4app ภายใต้ การตั้งค่าเซิร์ฟเวอร์ > งานพื้นหลัง เพื่อให้ทำงานทุกวันหรือในช่วงเวลาที่ต้องการ ขั้นตอนที่ 9 – การรวม webhooks webhooks ช่วยให้แอป back4app ของคุณส่งข้อมูลไปยัง url ภายนอกเมื่อเกิดเหตุการณ์บางอย่าง คุณสามารถส่งต่อข้อมูลวัตถุใหม่หรือที่อัปเดตไปยังระบบอื่น—เช่น stripe หรือ slack ไปที่ เพิ่มเติม > webhooks ในแดชบอร์ด back4app ของคุณ เพิ่ม webhook ใหม่ ที่ชี้ไปยัง url ภายนอกของคุณ (เช่น เส้นทางในตัวควบคุม rails ของคุณ) ระบุเหตุการณ์ ที่กระตุ้น webhook หากคุณต้องการ คุณยังสามารถเรียกใช้งาน webhook จาก cloud code โดยการทำ http request ในฟังก์ชัน beforesave หรือ aftersave ขั้นตอนที่ 10 – สำรวจแผงควบคุม back4app แอป back4app admin app ให้วิธีที่ใช้งานง่ายสำหรับทีมที่ไม่ใช่เทคนิคหรือผู้ใช้ในการดำเนินการ crud บนข้อมูล back4app ของคุณ อินเทอร์เฟซนี้ช่วยขจัดความจำเป็นในการเปลี่ยนแปลงโค้ดโดยตรงหรือการใช้ parse dashboard สำหรับงานพื้นฐาน จะหามันได้ที่ไหน คุณสามารถ เปิดใช้งาน admin app จากแดชบอร์ดของคุณโดยไปที่ เพิ่มเติม > admin app และคลิกที่ เปิดใช้งาน admin app ฟีเจอร์ เมื่อเปิดใช้งานแล้ว คุณสามารถ สร้างและจัดการข้อมูลโดยไม่ต้องเขียนคำสั่ง ตรวจสอบบันทึก กำหนดเวลางานเบื้องหลัง และจัดการการแจ้งเตือนแบบพุช (ถ้าเปิดใช้งาน) ให้การเข้าถึงตามบทบาทแก่สมาชิกในทีมเพื่อการแก้ไขที่ปลอดภัยยิ่งขึ้น บทสรุป ขอแสดงความยินดี! คุณได้เรียนรู้วิธีการสร้างแบ็กเอนด์สำหรับ ruby on rails โดยใช้ back4app ในบทเรียนนี้ คุณได้ กำหนดค่าโปรเจกต์ rails เพื่อโต้ตอบกับ back4app ผ่าน rest, graphql, หรือ parse ruby client ตั้งค่าการโต้ตอบกับฐานข้อมูลอย่างปลอดภัย โดยใช้ class schemas, acls, clps, และ live queries ที่เลือกได้ รวมการตรวจสอบผู้ใช้ กับการยืนยันอีเมลและการรีเซ็ตรหัสผ่าน ปรับใช้ cloud code สำหรับตรรกะที่กำหนดเอง, ทริกเกอร์, และงานที่กำหนดเวลา จัดการการอัปโหลดไฟล์ , ใช้ webhooks, และสำรวจ admin panel โดยการรวมสถาปัตยกรรม mvc ของ ruby on rails กับชุดฟีเจอร์ที่แข็งแกร่งของ back4app, แอปพลิเคชัน rails ของคุณสามารถขยายได้อย่างราบรื่น คุณจะประหยัดเวลาในการจัดการโครงสร้างพื้นฐานได้มาก, ทำให้คุณสามารถมุ่งเน้นไปที่การสร้างแอปพลิเคชันเว็บที่มีประสบการณ์ผู้ใช้ที่ดีขึ้นและตรรกะฝั่งเซิร์ฟเวอร์ที่เชื่อถือได้ ขั้นตอนถัดไป ขยายแอป rails ของคุณ โดยการเพิ่มความสัมพันธ์ที่ซับซ้อนมากขึ้น, กลยุทธ์การแคช, หรือการรวมที่ล้ำสมัย รวม api ของบุคคลที่สาม (เช่น เกตเวย์การชำระเงิน) และใช้ cloud code สำหรับการพัฒนา แอปพลิเคชันเว็บที่ลึกซึ้ง สำรวจเอกสารทางการของ back4app สำหรับความปลอดภัยขั้นสูง, การปรับแต่งประสิทธิภาพ, การวิเคราะห์บันทึก, และอื่นๆ ทดลองใช้ฟีเจอร์เรียลไทม์ เพื่อสร้างแอปแชทหรือแพลตฟอร์มร่วม—เหมาะสำหรับข้อมูลที่เปลี่ยนแปลงบ่อย เมื่อมีพื้นฐานเหล่านี้อยู่ในที่แล้ว, คุณสามารถพัฒนา, ปรับปรุง, และขยายเซิร์ฟเวอร์ rails ของคุณสำหรับแอปพลิเคชันเว็บสมัยใหม่ได้อย่างรวดเร็ว ขอให้สนุกกับการเขียนโค้ด!