我有一个大型模型,有大量的领域。我想将它们分成两个单独的页面,并将它们分开编辑。我最好喜欢在两个不同的控制器中处理A部分和B部分。
目前,页面B使用控制器中的“新建”和“编辑”方法,但仍然向页面A的控制器发布。我似乎无法强制它使用页面B的控制器。 ,当页面B上的字段验证失败时,我被重定向到页面A.
这是一个奇怪的问题,但如果有人有一些建议,我们将非常感激。
编辑:
在控制器A中(与模型相关):
@modA = ModelA.new(params[:model_a])
@modA.id = current_user.id
respond_to do |format|
if @modA.save
format.html {redirect_to('/model_a/new', :notice => "ModelA successfully created.") }
else
format.html {render action: 'new'}
end
end
这基本上就是所有需要的 - 如果我可以有条件地重定向到其他控制器的'编辑'或'创建'动作,我就会全部设定。
答案 0 :(得分:0)
我打赌,在您对Page B的新页面和编辑页面的观看中,您正在执行form_for(@modA)
之类的操作。这会自动使用与该模型一起使用的路由。您可以通过在浏览器中查看页面源代码中表单的action属性来确认这一点。
相反,您可以指定要使用的控制器和路由:
form_for(@modA, url: {controller: 'page_b', action: 'create'}) do
...
如果我的猜测不是您所拥有的,或者此建议无效,请发表您的观点。