我有一些几乎与仪表板一样的页面。在一个页面上,我可能有2个或更多个人表单需要发布到操作以在DB中保存不同的AR模型。截至目前,我只是使用一个控制器,其中定义了用于创建每条记录的特定路由(create_task,create_followup等)。由于页面本身不遵循典型的MVC模式,因此我不希望能够使用典型的show / new / create / etc来获得干净的控制器。但是,我无法改变这种感觉,其中很多都可以被抽象出来。
我尝试为每个模型创建一个控制器并从相应的表单发布到该模型,但是当模型验证失败并且需要返回到我发布的原始路径时,这会导致问题。
有什么建议吗?
答案 0 :(得分:0)
继续使用“每个型号的控制器”路径。当模型验证失败时,只需渲染主页面。
class ExamplesController > ApplicationController
def create
example = Example.new(params[:example])
if example.save
# do the happy thing
else
render "home#index"
end
end
end
查看http://guides.rubyonrails.org/layouts_and_rendering.html#rendering-an-action-s-template-from-another-controller,它还有更多相关内容。