即使路由存在,Rspec 命名空间路由规范也会失败

2024-05-19

我在用着rspec-rails (2.8.1) and 导轨3.1.3.

我正在尝试测试 Admin::ZonesController 的路由。我已经通过运行验证了浏览器中存在该路由rake routes。我没有使用 ActiveRecord(如果这很重要的话)。当我运行路由规范时,它告诉我:

ActionController::RoutingError: No route matches "/admin/zones/new"

这是测试(spec/routing/admin/zones_routing_spec.rb):

require 'spec_helper'

describe "routing to zones" do

  it "routes /admin/zones/new to admin/zones#new" do
    { :get => "/admin/zones/new" }.should route_to(
      :controller => "admin/zones",
      :action => "new"
    )
  end
end

这是我正在尝试测试其路由的控制器操作(admin/zones#new):

class Admin::ZonesController < Admin::BaseController

  before_filter :instantiate_variables

  def new
    @zone = Zone.new
    @campaign = Campaign.new
    @rules = [Rule.new]
  end
end

Running rake routes给了我这个:

                  POST   /hooks/:resource(.:format)           {:controller=>"hooks", :action=>"create"}
                  POST   /services/:service/:method(.:format) {:controller=>"services", :action=>"create"}
      admin_zones GET    /admin/zones(.:format)               {:action=>"index", :controller=>"admin/zones"}
                  POST   /admin/zones(.:format)               {:action=>"create", :controller=>"admin/zones"}
   new_admin_zone GET    /admin/zones/new(.:format)           {:action=>"new", :controller=>"admin/zones"}
  edit_admin_zone GET    /admin/zones/:id/edit(.:format)      {:action=>"edit", :controller=>"admin/zones"}
       admin_zone GET    /admin/zones/:id(.:format)           {:action=>"show", :controller=>"admin/zones"}
                  PUT    /admin/zones/:id(.:format)           {:action=>"update", :controller=>"admin/zones"}
                  DELETE /admin/zones/:id(.:format)           {:action=>"destroy", :controller=>"admin/zones"}
    admin_widgets GET    /admin/widgets(.:format)             {:action=>"index", :controller=>"admin/widgets"}
                  POST   /admin/widgets(.:format)             {:action=>"create", :controller=>"admin/widgets"}
 new_admin_widget GET    /admin/widgets/new(.:format)         {:action=>"new", :controller=>"admin/widgets"}
edit_admin_widget GET    /admin/widgets/:id/edit(.:format)    {:action=>"edit", :controller=>"admin/widgets"}
     admin_widget GET    /admin/widgets/:id(.:format)         {:action=>"show", :controller=>"admin/widgets"}
                  PUT    /admin/widgets/:id(.:format)         {:action=>"update", :controller=>"admin/widgets"}
                  DELETE /admin/widgets/:id(.:format)         {:action=>"destroy", :controller=>"admin/widgets"}
            zones GET    /zones(.:format)                     {:action=>"index", :controller=>"zones"}
                  POST   /zones(.:format)                     {:action=>"create", :controller=>"zones"}
         new_zone GET    /zones/new(.:format)                 {:action=>"new", :controller=>"zones"}
        edit_zone GET    /zones/:id/edit(.:format)            {:action=>"edit", :controller=>"zones"}
             zone GET    /zones/:id(.:format)                 {:action=>"show", :controller=>"zones"}
                  PUT    /zones/:id(.:format)                 {:action=>"update", :controller=>"zones"}
                  DELETE /zones/:id(.:format)                 {:action=>"destroy", :controller=>"zones"}
             root        /                                    {:controller=>"admin/zones", :action=>"new"}

My 路线.rb看起来像这样:

D2CModularPlatform::Application.routes.draw do

  post "/hooks/:resource" => "hooks#create"

  post "/services/:service/:method" => "services#create"

  namespace :admin do
    resources :zones
    resources :widgets
  end

  resources :zones

  root :to => "admin/zones#new"
end

My 控制器目录看起来像这样:

  • controllers
    • admin
      • 基础控制器
      • 小部件控制器
      • 区域控制器
    • 应用程序控制器
    • 钩子控制器
    • 服务控制器
    • 区域控制器

My 规格/路由目录看起来像这样:

  • spec/routing
    • admin
      • 区域路由规范
    • 钩子路由规范
    • 服务路由规范
    • 区域路由规范

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

即使路由存在,Rspec 命名空间路由规范也会失败 的相关文章

  • Rails 从 OrdersController 更新用户模型的属性

    这是我的代码 订单控制器类 def create order Order new params order if order purchase work GATEWAY store credit card options result wo
  • Omniauth + Google + Faraday + 代理背后=如何设置代理?

    我的生产服务器是乌班图12 我在用着设计 OmniAuth处理 Google 身份验证 但是当 Google 将控件返回给我的应用程序时 我收到错误 网络不可达 我认为这是因为服务器位于代理后面 这是错误描述 Request URL htt
  • 多次部署后 Heroku Slug 大小

    我有一个红宝石 on Rails非常接近 slug 大小限制 300mb 的应用程序 我已经尽可能地减小了尺寸 slugignore但还没有得到我想要的结果 一时兴起 我尝试创建一个新的Heroku应用程序并向其部署相同的 git 存储库
  • 带回形针、导轨的水印图像 4

    我一直在尝试按照中列出的答案向我的图像添加水印带有回形针的水印 https stackoverflow com questions 13517757 watermark with paperclip 水印 rb module Papercl
  • Rails 4 和 Turbolinks - 元标签未更改

    我有一个启用了 Turbo Links 的 Rails 4 应用程序 但在更改页面时无法刷新元标记 不是完全刷新 我读到元标记需要包含在加载涡轮链接的 JavaScript 之前 但它没有效果 完全刷新可以完成这项工作 但不幸的是这不是我所
  • puma systemd 脚本无法启动 puma

    我已经从多个来源复制并粘贴了以下美洲狮系统启动脚本的片段 但它不起作用 系统是Debian 9 6 用户rails红宝石通过安装rvm 用户rails可以启动命令RAILS ENV production bundle exec puma C
  • 在 mac os Sierra 上,卡在“设置 CocoaPods 主存储库”上

    转移到 mac os sierra 后 我完全格式化了我的 mac 现在每次运行时我都面临安装 cocoapods 的问题sudo gem install cocoapods pre一切都安装得很好 当我尝试安装 Pod 时 终端堆栈打开S
  • Asp.net MVC 路由 - 防止通过约束路由到 XML 文件

    我正在尝试找到一种方法来阻止用户访问特定的 xml 文件 我尝试过做 routes MapRoute SiteMap SiteMap siteMap xml new new isLocal new LocalHostRouteConstra
  • db:schema:load 与 db:migrate 使用 capistrano

    我有一个 Rails 应用程序 我正在将其移动到另一台服务器 我认为我应该使用 db schema load 来创建 mysql 数据库 因为这是推荐的 我的问题是我正在使用 capistrano 进行部署 并且它似乎默认为 rake db
  • 使用设计宝石导轨注销用户

    在管理部分 我显示当前登录用户的列表 现在管理员可以选择一个或多个用户并销毁他们的会话 注销他们 我不知道从哪里开始 请帮助我 您可以使用sign out通过传入用户对象在控制器操作中的方法 Make sure only admins ca
  • 通过 SSL 发布 UTF-8 时,HEROKU 上出现“EOFError:已到达文件结尾”

    我在 heroku 上遇到了奇怪的错误 为了重现它 我必须使用请求正文中的任何 UTF 8 字符制作大的 超过几 KB HTTPS POST 这是一个例子 require net https require uri Accutally I
  • 在 ruby​​ 中创建登录会话时理解“current_user”概念

    我正在阅读很棒的 Michael Hartl 教程来构建 ruby 应用程序here http ruby railstutorial org chapters sign in sign out sec 3acurrent user 我试图理
  • Rails Active Storage - 保留现有文件/上传吗?

    我有一个 Rails 模型 has many attached files 默认情况下 通过 Active Storage 上传时 如果您上传新文件 它会删除所有现有上传内容并将其替换为新文件 我有一个控制器破解 由于多种原因 它不太理想
  • orchard cms路由问题

    我创建了一些自定义内容类型 其中包括路线部分 以便我的内容管理员可以编辑项目的别名 我没有运气配置一条路线 使我自己的控制器能够为这些项目的请求提供服务 核心 Routable 模块中到 ItemController 的路径的路由优先级为
  • NameError:未初始化的常量 Gem::SourceIndex

    对于没有任何修改的新 Rails 应用程序 在访问主页时 成功运行后 会出现此错误bundle install 以下是版本号 ruby 1 9 3p392 2013 02 22 revision 39386 x86 64 darwin12
  • RailsAdmin 中具有 join_table 和 has_many :through 的模型的路由错误

    所以我有3个模型 category product category products 这是我的category rb attr accessible name has many category products do def with
  • 如果使用 jQuery 添加字段,Rails 嵌套表单属性不会保存

    我有一个带有嵌套表单的 Rails 表单 我使用 Ryan Bates 嵌套表单和 jquery 教程 并且就动态添加新字段而言 它工作得很好 但是当我提交表单时 它不会保存任何关联的属性 但是 如果在表单加载时构建部分 则它会很好地创建属
  • 捆绑包安装无法离线工作

    我得到了这个问题 我想已经安装了捆绑器 因为我无法在 RoR 中创建应用程序时捆绑安装 也无法直接在项目中捆绑安装 如果您遇到任何问题并找到解决方案 请帮助我 enter code here run bundle install Fetch
  • Rails 3 分页,will_paginate 与 Kaminari

    我的设置 Rails 3 0 9 Ruby 1 9 2 我正在为我的应用程序寻找分页解决方案 发现有一个新的宝石Kaminari与值得信赖的人相比will paginate 看起来像will paginate有一段时间没有更新了 但后来又以
  • 为 Rails 上的 postgresql 创建用户

    我选择 postgresql 作为我的 Rails 数据库 但当我尝试运行 rake db create all 时 我遇到了一个明显常见的错误 即 致命 角色 app 不存在 我找到了两种解决方案 但我不确定哪一种是正确的 有一个网站说

随机推荐