这是我第一次遇到这个问题。
我有一个向更新两个表的控制器提交发布请求的视图。
def update
if request.post?
if @circuit
# update
@circuit.update_attributes params[:circuit]
@logical_interface = LogicalInterface.new params[:logical_interface]
@logical_interface.save
#redirect_to :action => 'update', :id => @circuit.id
@success = "Updated." if @circuit.valid?
else
# attempt create
end
end
end
这三行是我添加到控制器中的内容:
@logical_interface = LogicalInterface.new params[:logical_interface]
@logical_interface.save
redirect_to :action => 'update', :id => @circuit.id # this was added because the view wasn't being updated until refreshed
如果我保留重定向,视图将相应更新,但变量中没有Updated.
消息。@success
如果我注释掉重定向,circuit
我的表单顶部的表单字段将更新,但不会更新logical_interfaces
我添加到的表,但我仍然会收到Updated.
成功消息。一切都直接在视图中,不使用任何部分。
希望我已经正确解释了它,但是如果有人不确定,那么我可以更新问题以更详细地说明。
表格只是:
<%= form_tag :controller => "circuit", :action => "update" %>
...
</form>
在表单中,我使用两个对象circuit
并logical_interface
拆分输入,以便在控制器中我可以更新circuit
并创建一个新的logical_interface
.