0
如何在2個方法的查詢中重複使用?有什麼更好的做法來重用where查詢
.where(sony_alarm_tests: {ip: sony_alarm_test.ip})
.where(sony_alarm_tests: {round: sony_alarm_test.round})
.where(sony_alarm_tests: {firmware_version: sony_alarm_test.firmware_version})
對我來說麻煩的是查詢取決於.joins(:sony_alarm_test)
。
我不知道?謝謝
def previous(event_name=self.name)
SonyAlarmLog.joins(:sony_alarm_test)
.where{ utc_time.lt (my{self.utc_time} - TIME_CORRECTION) }
.where{ name =~ event_name }
.where(sony_alarm_tests: {ip: sony_alarm_test.ip})
.where(sony_alarm_tests: {round: sony_alarm_test.round})
.where(sony_alarm_tests: {firmware_version: sony_alarm_test.firmware_version})
end
def following(event_name=self.name)
SonyAlarmLog.joins(:sony_alarm_test)
.where{ name =~ event_name }
.where{ utc_time.gt (my{utc_time} + TIME_CORRECTION) }
.where(sony_alarm_tests: {ip: sony_alarm_test.ip})
.where(sony_alarm_tests: {round: sony_alarm_test.round})
.where(sony_alarm_tests: {firmware_version: sony_alarm_test.firmware_version})
end
-1剽竊文檔叫它:http://guides.rubyonrails.org/active_record_querying.html#scopes –
它可以在連接()上工作嗎? – newBike