我想創建一個頻繁運行的查詢(即用戶有錯誤)的範圍。問題是我必須加入用戶和帳戶表,然後在帳戶表上運行一個方法來找出哪個用戶有錯誤。換句話說,我需要找到具有錯誤帳戶的用戶。我能夠在賬戶模式是這樣創建這個範圍:如何在Rails中調用聯接表上的方法?
scope :with_errors -> {joins(:user).map(&:status).select{|status| status['code'] == :error}}
的問題是,我必須定義戶口本上範圍,因爲那時我可以對從返回的ActiveRecord ::關係運行map(&:status)
加入。所以,我的問題是:是否可以在「joined」表上運行一個方法,以便我可以在我的User模型上定義這個範圍?
謝謝!
'status' *有*是一種方法嗎?如果您可以使用數據庫查詢(例如, Account.where(:status_code =>'error') – 2014-09-30 00:51:20
不幸的是,'status'必須是一個方法。我們將'user'存儲在cassandra的postgres和'status'中。所以,我不能充分利用所有的棒極了助手。謝謝! – spinlock 2014-09-30 01:13:54