によって私はこのような支払い、請求書、およびトランザクションモデルを設定している:私の顧客でRailsは、ソートクエリの日付
# transaction.rb
class Transaction < ActiveRecord::Base
belongs_to :customer
belongs_to :transactionable, polymorphic: true
end
# payment.rb
class Payment < ActiveRecord::Base
belongs_to :customer
has_many :transactions, as: :transactionable
end
# invoice.rb
class Invoice < ActiveRecord::Base
belongs_to :customer
has_many :transactions, as: :transactionable
end
テンプレートを示し、私は要求された顧客に属するすべての取引を見つけることです。私は、トランザクションが所属している請求書または支払い日までに取引を並べ替える必要があります。これを達成する最良の方法は何ですか?トランザクションは常に支払いまたは請求書と一緒に作成された場合
class CustomersController < ApplicationController
def show
@customer = Customer.find(params[:id])
# I want the transactions sorted by the date of the Invoice or Payment they belong to
@transactions = Transaction.where(customer: @customer)
end
end
を、私はこの解決策に同意し、関連する 'トランザクションtime'が上に記録されなければなりません「取引」は、「請求書」または「支払」の任意の時刻とは別個である。 – br3nt
これはうまくいくはずですが、支払いや請求書の金額など他の値で取引を並べ替える場合は、これらの列を取引テーブルに追加する必要があります。これは冗長なようです。 – James