我正在寻找最佳实践。这是场景:
客户可以通过表单为一个或多个小部件付费。所以我有一个 Payments 模型和一个 Widgets 模型。它们之间没有关联(付款与客户相关联)。处理这个问题的最佳方法是什么?
在付款控制器中,我可以这样做:
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
这是最好的方法吗?还是有一些更优雅的解决方案?