2
假設我有一個Message
模型,具有sender
和receiver
屬性。什麼是軌道方式來獲取所有在兩個用戶之間交換的消息?我寫了一些範圍和SQL語句的某些聯合查詢 - 導軌
scope :some_scope, lambda { |sender = nil, receiver = nil| where({:sender_id => sender, :receiver_id => receiver})}
,然後我串聯Message.some_scope(some_receiver,some_sender)
和Message.some_scope(some_sender,some_receiver)
,但我不認爲這是一個最佳實踐(順便說一句,我沒有找到一個簡單的方法,使在rails
union
語句)
[「使用類方法是接受範圍參數的首選方法。」](http://guides.rubyonrails.org/active_record_querying.html#passing-in-arguments),所以我認爲*可能更清潔*應該是*你應該使用類方法*。儘管如此,這只是挑剔。 –