我在another answer中读到redirect_to
不同控件的create
操作是不好的做法。
我正在尝试在Create Foo and Bar
上的表单中实现Foos#new
按钮。
Foo
使用表单中的信息,Bar
可以使用Foo
的ID Foo.find(params[:foo_id])
来获取所需的Foo
信息。对我来说,我应该做的事情是有道理的:
if params['route_to']['bar']
redirect_to controller: :bars, action: :create, foo_id: @foo.id
else
redirect_to foos_path
end
在Foos#create
。
redirect_to
告诉POST
而不是GET
?因为我现在想要GET
POST
答案 0 :(得分:1)
如果我理解正确,你想在创建Foo对象后创建一个Bar对象吗?我只是在Foo的create方法中这样做。
像
这样的东西def create
@foo = Foo.new(foo_params)
if @foo.save
@bar = Bar.new
@bar.attribute1 = @foo.attribute_bar_needs
@bar.save
end
end
更好的是,如果需要在每个Foo对象之后创建一个bar对象,那么我在Foo模型中进行after_create回调,而不是在控制器中进行。