有没有办法在运行时从控制器视图路径中删除特定的视图路径?

时间:2012-04-27 08:33:19

标签: ruby-on-rails ruby ruby-on-rails-3 view view-path

我正在开发一个rails 3应用程序,该应用程序具有针对特定用户或移动设备的不同子域。

这是视图结构的样子:

应用程序/

----视图/

--------移动/

--------管理员/

可以通过简单调用

为路径集添加新的视图路径
prepend_view_path(some_path)

append_view_path(some_path)

现在,我想删除它们。

有没有办法从控制器path_set中删除任何以前添加的路径? 我没有在API中找到任何有用的方法,并且在使用我在数组上使用的标准方法时(例如delete_at)我得到以下RuntimeError:

can't modify frozen array

我已经为移动设备的请求使用了不同的mime类型。如果我无法删除添加的路径,那也不算太糟糕。我只是想找到一种方法来重置为“默认”视图路径。

2 个答案:

答案 0 :(得分:1)

Rails分别提供了另外两种getter和setter方法 - view_paths()view_paths=方法。我相信使用'view_paths ='方法,您可以删除动态附加的视图路径。

答案 1 :(得分:0)

您希望禁止普通用户使用管理功能。更好的方法是使用'cancan'等“授权”插件。