ruby on rails子目录里面的'Views'主目录

时间:2011-01-12 14:02:40

标签: ruby-on-rails

我是ruby on rails的新手,我遇到了一个简单的路由问题。

我的控制器'sub'和'Views'文件夹包含add,edit,new erb文件。

在我的路线文件中,我有'map.resources:subs'。

到现在为止,一切都很好。

问题: 我将添加,编辑,新的erb文件移动到'Views'主目录中名为'admin'的子文件夹中。 我不知道如何从'admin'子目录调用那些erb文件。

默认情况下,它正在寻找/app/views/subs/index.html.erb,我想让它查看/app/views/subs/admin/index.html.erb

请有人告诉我怎么做。

非常感谢

3 个答案:

答案 0 :(得分:5)

我建议采用不同的方法,因为看起来你想做的就是管理路由。在您的routes.rb中写

  namespace :admin do     
    resources :subs
  end 

然后将您的视图放在子目录views / admin / subs

另外,将您的控制器放在子目录controller / admin中,并将它们命名为“Admin”,例如

class Admin::StubsController < Admin::ApplicationController
  your_code_goes_here
end

当然,您还需要controller / admin目录中的application_controller.rb。但是你也可以从ApplicationController派生出来,这是不必要的。

您的控制器可以通过url / admin / subs

调用

有帮助吗?

答案 1 :(得分:2)

您可以在控制器操作中显式呈现模板,如下所示:

render :template => "subs/admin/index"

答案 2 :(得分:0)

我是RoR的初学者。

我想要的是将所有视图(例如移动设备友好版本)分组到1个文件夹中,但最终没有额外的命名空间或在控制器中创建新方法。 localhost:3000/posts来电:

class Post < ActiveRecord

而不是

class Admin::Post < ActiveRecord

但是在views/android/posts/index.html.erb

中加载视图

因为这是我的谷歌第一次点击,下面的链接是一个替代的答案,花了一些时间让我找到。

Rails: Elegant way to structure models into subfolders without creating submodules