私はRoRにはとても新しいので、正しい質問をしているかどうかはわかりません。しかし、ここにそれがあります。Ruby on Rails:コントローラから計算されたメソッドをクエリまたはフィルタリングする方法はありますか?
私は仲介3機種方針、CommissionInvoiceを、持っている
仲介 -
has_many :commission_invoices, foreign_key: :intm_no
CommissionInvoice -
belongs_to :policy, foreign_key: :policy_id
has_one :intermediary, foreign_key: :intm_no
ポリシー - 私のIntermeで
has_one :commission_invoice, foreign_key: :policy_id
has_one :intermediary, through: :commission_invoice, foreign_key: :intm_no
私はこのような方法を作った日記モデル:
def credit_term
if type == "BR"
90
else
30
end
end
はその後、私のポリシーモデルに私はこのような方法を作った。
def due_date
effectivity + intermediary.credit_term if commission_invoice
end
を有効性は列名です。
そして、私のPoliciesController用:
def due_today
@policies = Policy.order(sort_column + " " + sort_direction).includes([:commission_invoice => :intermediary]).page(params[:page]).per(10)
end
は今、私の質問はどのように私は、コントローラからの照会データをフィルタすることができます(または、他のソリューションを提案することができる場合)、あるに計算された方法DUE_DATEを使用して今日の日付?最初からすべてのレコードが表示されているためです。私の質問がはっきりしていることを願っています前もって感謝します。 :)あなたは、アレイの選択方法使用してフィルタリングすることができます
コントローラーにはどこに入れますか?またはビューで? –
技術的には、コントローラーまたはビューのいずれかに入れることができますが、コントローラーに入れる方がきれいだと思います。私はそれを示すために私の答えを編集しました。 –
私はフィルタリングされたデータをチェックしていますが、今は問題ないと思いますが、ビューモジュールのdue_dateに該当しないポリシーだけが隠され、他のページをスキャンすることによってそれは1つのポリシーがあると言われていますが、空白です。どのようにして今日のすべてのポリシーを照会するだけで、他のポリシーを使用しないようにするには、ビューモジュールを作成することができますか?助けてくれてありがとう。 –