ruby-on-rails - 添加 Admin 命名空间时的路由错误

标签 ruby-on-rails ruby namespaces routes

我在我的应用程序中添加了一个 Admin 命名空间,所以当登录到管理区域时,它必须是这样的:admin/websites 和 admin/page/8

所以这就是我在 routes.rb 中的内容

namespace :admin do |admin|
  match '/' => 'dashboard#index'
  resources :websites
  resources :pages
  resources :sessions
  get 'login' => 'sessions#new', :as => 'login'
  get 'logout' => 'sessions#destroy', :as => 'logout'  
end

我在 app/controllers 目录中有 admin_controller.rb。
class Admin::BaseController < ApplicationController
  protect_from_forgery
  include UrlHelper
  ...

我在 app/controllers 中创建了一个管理目录。所以我在 app/controllers/admin/websites_controller.rb 里面有这个
class Admin::WebsitesController < ApplicationController

其他一些答案建议使用 class Admin::WebsitesController < Admin::BaseController,但这对我来说从未奏效。如果我错了,请告诉我。

那么在我的布局文件 (app/views/layouts/application.html.erb) 中,我有这样的链接 edit_admin_website_path(@website)给我路由错误 Routing Error No route matches {:action=>"edit", :controller=>"admin/websites"}为什么?! :(

最佳答案

添加名为 的文件application_controller.rb 在具有此内容的 admin 目录中:

class Admin::ApplicationController < ApplicationController
end

然后,对于此目录中的每个 Controller ,扩展 Admin::ApplicationController 类。

你试过这个吗?
admin_edit_website_path(@website)

关于ruby-on-rails - 添加 Admin 命名空间时的路由错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7571780/

相关文章:

ruby-on-rails - 使用 Formtastic 和 ActiveAdmin 输入图像文件

javascript - iOS 上的 Rails - 在 :method => :delete 上找不到操作 "show"

ruby-on-rails - 我如何使用路由别名改进重定向

html - 发现很难对齐登录界面

ruby-on-rails - 无法在 Heroku 上迁移

ruby-on-rails - 如何在 Rails 5 API only app 中设置 JSON API 的内容类型

ruby - 为什么使用 AJAX 的 rspec 示例无法正常工作?

c# - 在 C# 中动态更改命名空间

python - 从 XML 中删除 ns0、ns1、ns2 命名空间 - Python

c++:模板中非限定名称查找的上下文