Rails命名空间控制器

时间:2015-08-21 15:12:20

标签: ruby-on-rails

我创建了一个新页面,由于某些原因我无法找到它。

我已经使用了rails generate controller dashboard index哪个工作正常。然后我进入了路径文件并添加了这个

namespace :dashboard do
  get 'dashboard' => 'dashboard#index'
end

我的文件树是这样的 观点 - >仪表板 - > index.html.erb

我的助手就是这个

module DashboardHelper
end

我的控制器刚刚进入def index end

任何想法我做错了什么?

如果我去/仪表板我得到这个错误 No route matches [GET] "/dashboard"

干杯

2 个答案:

答案 0 :(得分:3)

如果在routes.rb中使用命名空间选项,则应将控制器类包装在命名空间中,也应将其放在自己的文件夹中。

为了更快地删除当前的控制器:

rails destroy controller dashboard

并生成新的:

rails generate controller dashboard/dashboard index

为您的控制器生成Rails,插入正确的路由并添加视图。

$> rails generate controller dashboard/dashboard index
#> create  app/controllers/dashboard/dashboard_controller.rb
#>  route  namespace :dashboard do
#>    get 'dashboard/index'
#>  end
#> invoke  erb
#> create    app/views/dashboard/dashboard
#> create    app/views/dashboard/dashboard/index.html.erb

答案 1 :(得分:0)

您的dashboard controller应该是

class Dashboard::DashboardController < ApplicationController
   def index
   end
end

您的view folder structure应该是

views -> dashboard -> dashboard -> index.html.erb