請求書を支払った (または部分的に支払った) 顧客を見つけることができるスコープ クエリを設定しようとしています。
ただし、スコープで使用したい値は実際にはデータベースになく、メソッドです。
例えば:
Bidder.rb
class Bidder < ActiveRecord::Base
...
scope :unpaid, where(payment_status: 'unpaid')
...
def payment_status
"paid" if whatever
"partial" if whatever
"unpaid" if whatever
end
...
end
使用しようとすると:
@auction.bidders.unpaid
私はこれを見る:
SQLite3::SQLException: no such column: bidders.payment_status: SELECT COUNT(*) FROM "bidders" WHERE "bidders"."auction_id" = 7 AND "bidders"."payment_status" = 'unpaid'
このようなものを機能させるには、何を変更する必要がありますか? スコープを使用する必要がありますか?
また、その範囲を変更して「未払い」と「部分」の両方の値を検索するにはどうすればよいですか?
ありがとう