在现有路由的 rspec 测试中找不到路由

2023-12-09

耙路线显示:

 estimate_location GET      /estimate/location/:id(.:format)   estimate/location#show

我的 rspec 测试:

it 'should re-direct to location/new from show' do
  e = FactoryGirl.create :estimate
  get estimate_location_path e
  expect(response.status).to eq(302)
end

控制台说:

   Failure/Error: get estimate_location_path e
     ActionController::RoutingError:
       No route matches {:controller=>"estimate/location", :action=>"/estimate/location/1"}

这对我来说没有意义。有一条路线,我传递了一个对象(Rails 巧妙地从中获取了 ID),但它说没有这样的路径?


看起来你正在编写一个控制器规范(rails 称之为功能测试)

在这些测试中get, post等方法期望第一个参数是操作的名称,第二个参数是选项的哈希值 - 它们绕过路由(尽管它们确实检查操作是否可路由)。相反,你会这样做

get :show, id: e.id

另一方面,在集成测试(请求规范或功能规范)中,您将使用实际路径(并且取决于您将使用的设置)visit or get, post等等,但它们会有所不同get方法)

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

在现有路由的 rspec 测试中找不到路由 的相关文章

  • Rails 6 中的protect_from_forgery?

    The protect from forgery方法不包含在默认 Rails 6 应用程序的应用程序控制器中 但有嵌入式 ruby在主应用程序布局中 这是否意味着protect from forgery方法已被抽象并且在应用程序控制器中不再
  • Rails 3 ActiveRecord 方法链接,底层

    假设您构建一个涉及多个方法链接的查询 例如 Post where id gt 10 limit 20 order id asc except order 我想知道幕后发生了什么 据推测 链的每个部分都将帮助构建 SQL SELECT 一旦链
  • 减少哈希值

    我在使用reduce 语法时遇到了问题 我有以下格式的哈希 H Key1 gt 1 Key2 gt 2 我想使用reduce 来查找该函数中值的总和 就像是 H reduce 0 memo elem memo elem 我知道这是错误的 我
  • 运行 gem install pg -v '0.15.1' 时出错

    Running gem install pg v 0 15 1 给出错误 构建本机扩展 这可能需要一段时间 错误 错误 安装 pg 错误 无法构建 gem 本机扩展 home askar rvm rubies ruby 1 9 3 p429
  • 通过 Devise 将 Discourse SSO 与现有 Rails 站点相结合

    我有一个现有的 Rails 应用程序 它使用 devise 作为用户身份验证 我添加了一个话语论坛 http www discourse org一切都很顺利 它驻留在子域上 我已阅读该帖子https meta discourse org t
  • 延迟作业排除队列

    我有一个延迟的作业队列 其中包含运行速度特别慢的任务 我希望由自己的一组专用工作人员来处理这些任务 因此它会阻碍其余工作人员管道的风险较小 RAILS ENV production script delayed job queue supe
  • Heroku: PG::ConnectionBad: 无法连接到服务器: 连接被拒绝

    我尝试将新应用程序推送到 heroku 并出现此错误PG ConnectionBad could not connect to server Connection refused 这是我的 gemfile 与此有关系吗 我正在使用 spre
  • 在控制器中调用模型方法

    我在这里遇到了一些困难 我无法成功调用属于ProjectPage model in the ProjectPage 控制器 我在我的ProjectPage控制器 def index searches Project published fi
  • 正则表达式将 BBCode 分成几部分

    我有这个 str some html code img img some html code img img 我想得到这个 img img img img 请不要使用 BBCode 它是evil 当开发人员开始使用 BBCode 时 懒得正
  • 根据多列删除重复记录

    在我们的系统中 我们每小时从外部数据库进行导入 由于导入脚本中存在错误 现在存在一些重复记录 如果任何记录具有相同的内容 则视为重复 legacy id and company 我可以运行什么代码来查找并删除这些重复项 我正在玩这个 Pro
  • 是否值得开始学习 Rails 2 还是应该等到 Rails 3 的书籍可用?

    我一直梦想着学习 Rails 和 Ruby 语言 但新的 Rails 3 版本似乎发生了巨大的变化 那么2和3之间通常存在巨大差异吗 当有书籍可用时 我是否应该从 Rails 3 开始 因为这是我学习最好的方式 事实上 最好的目标是 Rai
  • 在 Ruby 中显示 HTTP 请求的标头和正文

    我确信这很容易 但我进行了相当广泛的搜索 但无法找到答案 我正在使用Net HttpRuby 中的库 我想弄清楚如何显示 HTTP GET 请求的完整正文 像下面这样 GET really long path index html q fo
  • 如何根据多个条件找到嵌入的 Mongoid 文档?

    我有一个 Mongoid 文档 其中嵌入了文档 我想搜索所有顶级文档 其中有一个具有多个条件的嵌入文档 TopDoc where inside first name gt Bob inside last name gt Jones 但在我看
  • Ruby on Rails,如何禁用/关闭 ETag

    问候 如何在 Ruby on Rails v2 3 5 中关闭 ETag 当我向 RoR Mongrel 发出直接请求时 会出现 ETag 标头 TIA daniel 更容易 config middleware delete Rack ET
  • 安装atomic (1.1.16) 时出错,Bundler 无法继续

    我正在尝试创建一个新的 Rails 应用程序 但在捆绑时会出现此错误 这是我第一次遇到这个错误 Gem files will remain installed in usr local rvm gems ruby 1 9 3 p448 ge
  • Ruby:在 Windows 7 下安装 EventMachine 时出现问题

    我尝试通过捆绑包在 Windows 7 上安装 gem EventMachine 使用 Ruby 1 9 2 和 RubyInstaller 但出现以下错误 我还安装了 DevKit 并且它可以工作 但我仍然无法弄清楚问题出在哪里 Inst
  • 对于 Windows 上 gem 中的本机扩展构建失败该怎么办?

    我下载的几个 Rails 应用程序依赖于bson ext这似乎是一个本机代码库 当我跑步时rake gems install对于该应用程序 我收到以下错误消息 ERROR Error installing bson ext ERROR Fa
  • 如何创建用于 Apple Music 的 JWT

    我正在尝试创建一个开发者令牌 即 ES256 JWT 用于 Apple Music 身份验证 Here https developer apple com library content documentation NetworkingIn
  • Rails 3 对象#尝试不起作用?

    我应该从哪里开始寻找 这就是让我相信的原因 0 urzatron work secret project rails c Loading development environment Rails 3 1 3 irb main 001 0
  • 独立的 ruby​​——如何从database.yml加载不同的环境

    我有一个修改数据库中记录的后台进程 模型使用如下方式连接到数据库 dbconfig YAML load File open database yml ActiveRecord Base establish connection dbconf

随机推荐