0

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

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

我怎样才能在不弄乱我的控制器的情况下做到这一点?控制器动作执行和视图执行之间是否有回调(过滤器)?如果有,那应该可以解决这个问题。

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

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

4

1 回答 1

0

我认为您只是为了拥有更清晰的视图目录结构而使事情复杂化。

首先,我建议不要将 JSON 与 HTML 问题与 Web 与移动设备与平板电脑问题混为一谈。“手机”或“平板电脑”不是 mime 类型,我不会破解 Rails 基于 mime 类型的视图功能来解决这个问题。

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

于 2012-05-12T11:29:58.593 回答