ในกรณีที่คนที่กำลังมองหาคำตอบการปรับปรุงเพื่อให้คนนี้ก็ดูเหมือนว่ามีการร้องขอดึงที่มีอยู่จะได้รับนี้ลงไปในราง: https://github.com/rails/rails/pull/9052
ขอบคุณแพทช์ลิงของ @ j-mcnally สำหรับ ActiveRecord ( https://gist.github.com/j-mcnally/250eaaceef234dd8971b ) คุณสามารถทำสิ่งต่อไปนี้:
Person.where(name: 'John').or.where(last_name: 'Smith').all
สิ่งที่มีค่ายิ่งกว่าคือความสามารถในการเชื่อมโยงขอบเขตด้วยOR
:
scope :first_or_last_name, ->(name) { where(name: name.split(' ').first).or.where(last_name: name.split(' ').last) }
scope :parent_last_name, ->(name) { includes(:parents).where(last_name: name) }
จากนั้นคุณสามารถค้นหาบุคคลทั้งหมดที่มีชื่อหรือนามสกุลหรือมีผู้ปกครองที่มีนามสกุล
Person.first_or_last_name('John Smith').or.parent_last_name('Smith')
ไม่ใช่ตัวอย่างที่ดีที่สุดสำหรับการใช้สิ่งนี้ แต่เพียงพยายามทำให้เหมาะสมกับคำถาม