Rails:重组不同 MIME 类型的视图文件



所以我有一个响应HTML,XML,JSON,移动,平板电脑的Rails应用程序...等。假设我有"书籍"资源。当然,这个资源将需要"index.html.erb","show.html.erb","new.html.erb","edit.html.erb","_form.html.erb"和其他自定义函数。如您所见,"视图/书籍"文件夹最终会包含许多混乱的文件。我希望能够在"视图/书籍"文件夹内的子文件夹中将它们分开:

views/books/json
views/books/mobile
views/books/web
views/books/tablet

如何在不弄乱控制器的情况下做到这一点?控制器操作执行和视图执行之间是否存在回调(筛选器(?如果有,那应该可以解决这个问题。

在我的应用程序中使事情变得更加复杂的是,我想在某些MIME中重用一些部分,例如,我想对移动设备,Web和平板电脑使用"_login.erb"。然后,使用 CSS 对其进行自定义。

这里提出了类似的问题。但我对答案不满意,因为它很慢,不能解决我的常见部分问题。

我认为你只是为了有一个更干净的视图目录结构而使事情变得过于复杂。

首先,我建议不要将 JSON 与.HTML问题与网络、移动和平板电脑问题混合在一起。"移动"或"平板电脑"不是哑剧类型,我不会破解 Rails 基于哑剧类型的视图功能来解决这个问题。

在我们公司中,我们对不同的 mime 类型(json/html(使用不同的视图,我们使用一个根据设备类型分叉的 HTML 视图。在三组视图中反映模型/控制器更改会很烦人,每种视图对应一组设备类型。大多数情况下,视图是相同的或只是略有不同。我们使用 mobvious-rails gem 根据设备分叉视图代码。这不是一个更好的解决方案吗?

最新更新