我是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
请有人告诉我怎么做。
非常感谢
答案 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