
การสอบถาม ActiveRecord ขั้นสูง
Query interface, where, joins, includes, eager loading, ปัญหา N+1, transactions, locking (optimistic/pessimistic)
1เมธอด ActiveRecord ใดที่ดึงเรกคอร์ดด้วย primary key และโยน exception หากไม่พบ?
เมธอด ActiveRecord ใดที่ดึงเรกคอร์ดด้วย primary key และโยน exception หากไม่พบ?
คำตอบ
เมธอด find ดึงเรกคอร์ดด้วย primary key และโยน exception ActiveRecord::RecordNotFound หากเรกคอร์ดไม่มีอยู่ สิ่งนี้ช่วยให้แน่ใจว่าโค้ดล้มเหลวอย่างชัดเจนแทนที่จะทำงานต่อด้วยค่า nil หากต้องการหลีกเลี่ยง exception และคืนค่า nil แทน ให้ใช้ find_by(id: value)
2ความแตกต่างหลักระหว่าง find_by และ where.first ใน ActiveRecord คืออะไร?
ความแตกต่างหลักระหว่าง find_by และ where.first ใน ActiveRecord คืออะไร?
คำตอบ
find_by คืนค่าเรกคอร์ดเดียวหรือ nil โดยตรง ในขณะที่ where.first คืนค่า relation ของ ActiveRecord แล้วเรียก first เพื่อรับผลลัพธ์แรก ในทางปฏิบัติ find_by สร้างคิวรีที่ปรับให้เหมาะสมด้วย LIMIT 1 ในขณะที่ where อาจโหลดข้อมูลมากขึ้นก่อนที่จะเลือกองค์ประกอบแรก
3จะส่งเงื่อนไขหลายข้อไปยังเมธอด where ใน ActiveRecord ได้อย่างไร?
จะส่งเงื่อนไขหลายข้อไปยังเมธอด where ใน ActiveRecord ได้อย่างไร?
คำตอบ
เมธอด where รับ hash ที่มีหลายคีย์เพื่อระบุเงื่อนไขหลายข้อที่จะรวมกันด้วย AND ตัวอย่างเช่น User.where(status: 'active', role: 'admin') สร้าง WHERE status = 'active' AND role = 'admin' สำหรับเงื่อนไข OR ให้ใช้ or หรือคิวรี SQL ดิบ
ปัญหา N+1 ใน ActiveRecord คืออะไร?
ควรใช้เมธอดใดเพื่อแก้ปัญหา N+1 ด้วยการโหลด association ล่วงหน้า?
+25 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Ruby on Rails อื่นๆ
พื้นฐาน Ruby
การเขียนโปรแกรมเชิงวัตถุใน Ruby
พื้นฐาน Rails
Routing & Controllers
พื้นฐาน ActiveRecord
Views และ ERB Templates
การเชื่อมโยงของ ActiveRecord
ฟอร์ม Rails
การยืนยันตัวตนและการอนุญาต
Asset Pipeline สมัยใหม่และ frontend
โหมด API ของ Rails
การทดสอบด้วย RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
กลยุทธ์การ Caching
การ Migration ขั้นสูง
Rails Engines และแอปแบบโมดูลาร์
การเพิ่มประสิทธิภาพการทำงาน
Design Patterns ใน Rails
เมตาโปรแกรมมิงใน Ruby
ความปลอดภัยของ Rails
GraphQL กับ Rails
การดีพลอยและโปรดักชัน
Monitoring & Logging
กลยุทธ์การอัปเกรด Rails
เชี่ยวชาญ Ruby on Rails สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี