更改 Rails 中的默认视图路径?

Posted

技术标签:

【中文标题】更改 Rails 中的默认视图路径?【英文标题】:Changing the default view path in Rails? 【发布时间】:2011-05-30 15:52:24 【问题描述】:

我希望能够动态更改视图文件夹。目的是能够根据请求完全改变网页设计。我正在考虑这样的事情:

 Class PagesController

     default_views_path(current_theme_path)

     def show
         Blablah...
     end

 end

假设这样的目录架构:

 -apps
 --views
 ---theme 1/show.html.erb
 ---theme 2/show.html.erb
 ---theme 3/show.html.erb

我在网上搜索并找到了preprend_view_path。 (:deprecated) 你认为这是一个好主意吗?有什么反馈吗?

编辑

其实我想简化一下:

 Class PagesController

     def show
         render "#current_theme/show"
     end

     def edit
         render "#current_theme/edit"
     end

     def list
         render "#current_theme/list"
     end

     def index
         render "#current_theme/index"
     end

 end

任何解决方案?

【问题讨论】:

布局怎么样?还是部分?如果 request.somerequest, :render => 'something' 嘿!我正在寻找一份兼职的铁轨/红宝石工作。有的话可以考虑我。我的 SO 个人资料中有我的电子邮件 ID。 【参考方案1】:

您可以使用append_view_path。事实上,在这个 append_view_path 页面上有一条评论,有人将它用于主题化。

【讨论】:

【参考方案2】:

也许您应该改用layout :some_method_to_change_theme?这将简化并保持您的视图干燥。 看看这个 layout

【讨论】:

layout 仅适用于更改布局,但不适用于更改生成的模板本身。还是不要忘记这一点。

以上是关于更改 Rails 中的默认视图路径?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改默认设计视图路径?

如何更改 Rails 脚手架中的默认模型模板?

更改 Rails 4 中的默认日期和时间格式

如何更改默认的Laravel Auth登录视图

如何更改 Rails 中 Active Record 的默认时区?

部署了两个 Rails 应用程序 - 如何更改默认应用程序?