需要一些关于Rails最佳实践的答案。现在,在我的events_controller.rb
我有以下行动(总结):
def create
...
[perform a lot of operations and create a lot of state]
...
if @event.save #successfully creates the record
if @event.donation_request_flag
# if the flag is set, redirect to the "new" action in the donation_request_controller
redirect_to new_donation_request_path
else
# otherwise, just complete the "create" action in events_controller
respond_to do |format|
format.js { render 'draw_calendar' }
format.html { redirect_to show_calendar_path }
end
end
一方面,这似乎是正确的做法:以最直接的方式将新的捐赠请求交给捐赠请求控制器。另一方面,在事件控制器中创建的所有状态(不会发生变化)现在需要再次重新创建(或通过URL参数重定向到捐赠请求控制器)。这似乎非常重复。
有没有办法简单地从事件控制器调用捐赠请求控制器操作而不进行重定向并且具有渲染结果的方法?这是"适当的"做这种事的方法?