ファンジー向けのシンプルな金融アプリを作成しています。単一テーブル継承を使用して貸方と借方をモデル化しました。どちらもトランザクションから継承されます。ただし、各トランザクションはユーザーに属します。
class Transaction < ActiveRecord::Base
belongs_to :user
end
class Debit < Transaction
end
class Credit < Transaction
end
クレジットとデビット用に別々のコントローラーを作成して、次のようにすることができます。
@debit = current_user.debits.build(params[:debit])
...
@credit = current_user.credits.build(params[:credit])
...
ただし、ユーザーにはメソッド debits または credits がなく、トランザクションのみがあります。または、単一のトランザクション コントローラーを定義することもできます。
@transaction = current_user.transactions.build(params[:transactions])
しかし、タイプはnullであり、一括代入から保護されている場合、どのように設定すればよいでしょうか? いずれにせよ、それは少しピクルスです。ピクルスがおいしいことを除いて。