可以保存多个AR模型的页面的控制器

时间:2013-10-25 00:28:43

标签: ruby-on-rails ruby ruby-on-rails-4 rails-activerecord

我有一些几乎与仪表板一样的页面。在一个页面上,我可能有2个或更多个人表单需要发布到操作以在DB中保存不同的AR模型。截至目前,我只是使用一个控制器,其中定义了用于创建每条记录的特定路由(create_task,create_followup等)。由于页面本身不遵循典型的MVC模式,因此我不希望能够使用典型的show / new / create / etc来获得干净的控制器。但是,我无法改变这种感觉,其中很多都可以被抽象出来。

我尝试为每个模型创建一个控制器并从相应的表单发布到该模型,但是当模型验证失败并且需要返回到我发布的原始路径时,这会导致问题。

有什么建议吗?

1 个答案:

答案 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,它还有更多相关内容。