ベストプラクティスを探しています。シナリオは次のとおりです。
顧客は、フォームから1つ以上のウィジェットの料金を支払うことができます。だから私は支払いモデルとウィジェットモデルを持っています。それらの間に関連付けはありません(支払いは顧客に関連付けられています)。これを処理するための最良の方法は何ですか?
支払いコントローラーでは、次のことができます。
def create
@customer = Customer.find(params[:customer_id])
if @customer.payments.create!(params[:payment])
how-many-widgets = params[:payment][:number].to_i
while how-many-widgets > 0
widget = Widgets.new
... update widget ...
widget.save!
how-many-widgets = how-many-widgets - 1
end
end
redirect_to @customer
end
これはこれを行うための最良の方法ですか?それとも、もっとエレガントな解決策はありますか?