没有路线匹配... Rails Engine

2024-06-05

所以我不断收到错误:

No route matches {:action=>"create", :controller=>"xaaron/api_keys"}

测试中抛出的是:

it "should not create an api key for those not logged in" do
  post :create
  expect(response).to redirect_to xaaron.login_path
end

当我去spec/dummy并运行rake routes我看到的命令:

       api_keys GET    /api_keys(.:format)                 xaaron/api_keys#index
                POST   /api_keys(.:format)                 xaaron/api_keys#create
    new_api_key GET    /api_keys/new(.:format)             xaaron/api_keys#new
   edit_api_key GET    /api_keys/:id/edit(.:format)        xaaron/api_keys#edit
        api_key GET    /api_keys/:id(.:format)             xaaron/api_keys#show
                PATCH  /api_keys/:id(.:format)             xaaron/api_keys#update
                PUT    /api_keys/:id(.:format)             xaaron/api_keys#update
                DELETE /api_keys/:id(.:format)             xaaron/api_keys#destroy

这表明这条路线确实存在。我的该引擎的路线文件如下所示:

Xaaron::Engine.routes.draw do
      get 'login' => 'sessions#new', :as => 'login'
      get 'logout' => 'sessions#destroy', :as => 'logout'
      get 'signup' => 'users#new', :as => 'signup'
      get 'permission_denied' => 'error#denied', :as => 'permission_denied'
      get 'record_not_found' => 'error#error', :as => 'record_not_found'
      get 'password_reset' => 'password_resets#edit', :as => 'rest_user_password'

      resource :error, controller: 'error'

      resources :users
      resources :api_keys
      resources :sessions
      resources :roles
      resources :password_resets
end

我缺少什么?

update

对于那些好奇我如何获取这些路线的人来说,这是因为虚拟应用程序的路线文件是这样设置的(默认情况下):

Rails.application.routes.draw do

  mount Xaaron::Engine => "/xaaron"
end

更新二

我一直在阅读这个 api 文档介绍了如何在引擎中完成路由 http://api.rubyonrails.org/classes/Rails/Engine.html我相信我这样做的方式是正确的,无论控制器是如何定义的:

module Xaaron
  class ApiKeysController < ActionController::Base
    before_action :authenticate_user!

    def index
      @api_key = Xaaron::ApiKey.where(:user_id => current_user.id)
    end

    def create
      @api_key = Xaaron::ApiKey.new(:user_id => current_user.id, :api_key => SecureRandom.hex(16))
      create_api_key(@api_key)
    end

    def destroy
      Xaaron::ApiKey.find(params[:id]).destroy
      flash[:notice] = 'Api Key has been deleted.'
      redirect_to xarron.api_keys_path
    end
  end
end

您需要告诉您的规范您正在使用引擎路线:

describe ApiKeysController do
  routes { Xaaron::Engine.routes }

  it "should not create an api key for those not logged in" do
    post :create
    expect(response).to redirect_to xaaron.login_path
  end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

没有路线匹配... Rails Engine 的相关文章

  • 如何防止Rails“复数”列名?

    我正在使用 dwilkie 的外国人 http github com dwilkie foreignerRails 插件 我有一个表创建语句 如下所示 create table agents games force gt true id g
  • 我可以使用 ActiveRecord 与 Hstore 中的字段的关系吗?

    我可以使用 hstore 哈希中的字段通过活动记录 own to 将一个模型与另一个模型绑定吗 我将详细说明 我有一个用户模型 它根据权限通过 STI 在其字段之一上子类化为许多不同的其他用户模型 class User lt ActiveR
  • 如何在 Ubuntu 中使用 gems?

    我最近升级到 Ubuntu 9 04 但在使用 gems 时遇到问题 我使用 apt get 安装了 Ruby Rubygems 和 Rails 这rails命令确实有效 然后我安装了 capistrano 和其他 gem 例如 herok
  • 如何在同一视图中渲染两个分页且可 ajax 的集合?

    在 Rails 3 2 索引视图中 我正在渲染两个部分 并且在部分 Show some fields 分页不起作用 如果我改变will paginate要获取实例变量 分页可以工作 但是集合错误 当调用部分时 如何将
  • Twitter Bootstrap Modal 无法在 Rails 中工作

    我还很新Rails and to twitter bootstrap 我正在研究模态 但我收到了 NoMethodError 未定义的方法 渲染 当我删除 代码来自my release js erb页面 它消失但没有窗口出现 另外 还有错误
  • 登录西纳特拉?

    我无法弄清楚如何使用 Sinatra 记录消息 我不想记录请求 而是在我的应用程序中的某些点记录自定义消息 例如 当获取 URL 时 我想记录 Fetching url 这就是我想要的 指定日志级别的能力 例如 logger info Fe
  • Mac 上的 libv8 (3.11.8.17) 捆绑包安装错误

    我将 ruby 升级到 1 9 3 现在我无法启动我的服务器 当我运行捆绑安装时 它说 An error occurred while installing libv8 3 11 8 17 and Bundler cannot contin
  • Rails:has_many:通过还是has_many_and_belongs_to?

    我有一个应用程序 我想通过另一个模型将一个模型的实例链接到同一模型的另一个实例 即 Task1 gt Relationship 基本上 关系模型将具有额外的信息 关系类型 滞后 因此将其作为连接模型是理想的 然而 并没有两个模型可以加入 只
  • Heroku 带宽和空间

    Heroku 对于免费应用程序支持多少流量带宽和磁盘空间 Heroku 免费版有一个 5 MB 的数据库和 1 个 dyno dyno 是运行并响应请求的应用程序的实例 此外 您的 slug 的大小有 100 MB 的限制 这包括您使用的所
  • 使用 RMagick 将缩略图合并为一张大图像 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 使用 RMagick 将 20 个 256x256 缩略图组合成 4 行 x 5 列的单个大图像的最短方法是什么 假设所有图像都在当前
  • rspec Rails 测试:如何强制 ActiveJob 作业内联运行某些测试?

    我希望我的后台作业能够内联运行某些标记的测试 我可以通过包装测试来做到这一点perform enqueued do但我希望能够用元数据标记它们 并且如果可能的话 它会自动发生 我尝试过以下方法 it does everything in t
  • 为什么我不能在初始化中使用 attr_accessor ?

    我正在尝试做一个instance eval随后是一个attr accessor inside initialize 我不断收到这样的消息 初始化 未定义的方法 attr accessor 为什么这不起作用 代码看起来有点像这样 class
  • 为什么在安装 gem 'pg' 时出现错误? [复制]

    这个问题在这里已经有答案了 可能的重复 无法在 ubuntu 上安装 pg gem 找不到 libpq fe h 标头 https stackoverflow com questions 6040583 unable to install
  • rake db:migrate 到底做了什么?

    rake db migrate 是否仅添加新的迁移 还是会删除所有迁移 更改并构建所有新内容 我认为 rake 抛出错误 因为它试图访问迁移 040 中的表属性 该属性已在迁移 042 中删除 不知何故 我的数据库和 rake 不同步 我想
  • 在 Ruby 中获取用户主目录的跨平台方法?

    Java有方便的System getProperty user home 以与平台无关的方式获取用户的 主 目录 Ruby 中的等价物是什么 我没有 Windows 盒子可供使用 而且我觉得依赖文件名中的波浪号并不是最干净的方法 还有其他选
  • puma 初始化程序不适用于 Rails 4.2

    我之前安装过很多次puma 从来没有出现过这个问题 我逐字遵循heroku 的指示 我创建了一个Procfile里面有这个 web bundle exec puma C config puma rb 这是配置文件 puma rb worke
  • 重写的方法仍然被调用

    我正在使用一个正在实现的库belongs to数据库中两个条目之间的关联 由于这不是我需要的行为 我想通过重写此方法prepend 但 pry 告诉我 原来的方法仍然被调用 我仔细检查了一下 我使用的是 ruby 2 0 前置的代码 mod
  • 在 Rails 中捕获 UTM 参数

    我正在尝试捕获 URL 中的 UTM 参数 以将源 营销活动等添加到用户帐户 可悲的是 我似乎不知道如何捕获这些参数 据我所知 我正在关注博客文章http www matthuggins com articles tracking new
  • Hashie::Mash 从字符串恢复

    我在这个问题上很挣扎 我已经存储了一个Hashie Mash到一个字符串中 我很难将其恢复为哈希值 这是字符串 map Hashie Mash ncreated at Mon Jul 30 15 42 20 0000 2012 nid 22
  • 如何在 Rails 中为不在模型文件夹根目录中的模型定义工厂女孩?

    我想为我的服务器中的模型创建一个工厂女孩 该模型位于模型文件夹的文件夹内 我的树视图如下所示 app models xxx user rb spec factories xxx user rb 我的工厂女工长这样 FactoryGirl d

随机推荐

  • 为什么连字符不能与内部 一起使用?

    我正在尝试让连字符处理具有以下内容的文本 span 里面的元素用于突出显示 这似乎打破了连字符算法 有什么方法可以修复这种行为 使连字符的放置方式与没有连字符的位置相同 span 元素 我不是在问像这样的解决方法 shy 代码 沙箱 htt
  • 如何在 Angular 2 Material Autocomplete 中获取所选项目的值

    我使用 Angular Material 创建了一个自动完成字段 并成功从 Web api 获取国家 地区列表 CountryID gt 项目值 或索引 国家 地区 gt 项目文本 当我尝试获取所选项目的值 而不是文本 时 它会按预期返回文
  • 一个空的 JavaScript 对象有多少内存?

    选项A myobj a a a1 a1 a2 a2 a2a a2a a2b a2b a3 a3 a3a a3a a3a1 a3a1 a3a2 a3a2 b b vs 选项B myobj a a1 a1 a2 a2a a2a a2b a2b
  • 为什么 unique_ptr 隐式转换为 unique_ptr

    我编写了以下使用的代码unique ptr
  • 如何增加 Gradle 守护进程的最大堆大小?

    签署 apk 时 我收到以下消息 To run dex in process the Gradle daemon needs a larger heap It currently has 1024 MB For faster builds
  • 为什么有时自增列的值会有一个或多个间隙?

    我有一个这样的表 colors id color 1 red 2 blue id column is auto increment PK 当我向该表中插入一些新值时 有时会出现一些间隙id柱子 像这样的事情 INSERT INTO colo
  • 将二进制转换为十六进制

    我正在将二进制转换为十六进制 但下面的代码返回错误的答案 var number 1011 var hexa parseInt number 2 toString 16 return hexa 这返回b但应该必须退货B 问题是什么 b is正
  • 从 admob 独立 SDK 切换到 Google Play 服务 SDK 时,apk 大小会膨胀

    使用 Admob SDK 我的 apk 大小为 230Kb 当用 google play services SDK 替换 Admob SDK 时 它是 1 5MB 膨胀了 6 倍以上 我想完整的 Google Play 服务客户端 SDK
  • javascript中如何无限循环

    我尝试使用 0 到 100 和 100 到 0 之间的 while 进行无限循环 但浏览器崩溃了 有没有办法清除浏览器内存 这是我的代码 var a 0 var flag true while true if a lt 100 flag t
  • 如何像键盘一样呈现选择器视图?

    我希望当我按下按钮 就像键盘一样 时显示 UIPickerView 然后在用户点击屏幕上的任意位置时消失 我怎样才能做到这一点 谢谢 更多背景信息 我在 UITableViewCell 中有一个名为 Months 的 UITextField
  • 与在后台运行应用程序的一台设备进行多点连接

    我想使用多点连接框架连接 2 台设备 其中一台设备在后台运行应用程序 就像 Firechat 一样 我无法确认这是否有效 我已将其安装在 iPhone 5S 和 4 上 但是他们只是找不到彼此 但我在某处读过这有效 实现这一目标的最佳方法是
  • Git,无法在 Windows 上克隆存储库

    我正在尝试在 Windows 上使用 git 克隆远程存储库 我可以在我的 mac 上克隆它 但在 Windows 上我遇到了问题 当使用 git bash 克隆时 我收到一条消息 指出服务器的主机密钥未缓存在注册表中 它要求我按 y 或
  • 时间:2019-03-27 标签:c#NetworkStreamwrite()和read()

    我想知道如何停止Networkstream Read 来自阻塞线程 我有单独的线程NetworkStream Read 正在等待来自服务器的数据 假设用户按下某个按钮将一些数据发送到服务器 但我不能打电话NetworkStream Writ
  • 使用 java 从 XML 元素中删除空格

    我有一个 JSON 如下 String str Emp name JSON Emp id 1 Salary 20997 00 我想使用 java 将此 JSON 转换为 XML 我的 java 代码在这里 JSON json JSONSer
  • C++ 中的模板类

    下面的C 模板类的作用是什么 我正在逐行注释 template
  • 尝试获取 Box api 令牌时凭证无效

    这是我的问题 我按照 youtube 上发布的说明进行操作 通过 2 个快速步骤获取 Box 访问令牌 使用client id and client secret由盒子提供 步骤1 获取auth code 我在 Firefox 中复制并粘贴
  • Angular 2打开静态页面

    我有 Angular 2 项目 我想在新窗口中打开服务器上可用的静态帮助文件 我试过window open help index html 它导航到该页面 但抛出有关找不到路线的错误 我也尝试在角度区域外运行上面的代码 但没有什么区别 我怀
  • ASP.net,将对象添加到会话变量

    我正在尝试跨回发将对象添加到会话变量中 我的代码类似于以下内容 Supply sup Supplies GetSupply supplyItemID Session CartObjects sup 现在 编译器会抛出一个错误 指出 运算符不
  • 在 db4o 中打开具有重命名的命名空间/程序集的对象

    我在 dat 文件中有一组 db4o 格式的对象 该文件中的对象是 OldNamespace MyObject OldAssemblyName 问题是我已经将名称空间和程序集重命名为更永久的名称 除了重命名程序集和命名空间 这就是我正在做的
  • 没有路线匹配... Rails Engine

    所以我不断收到错误 No route matches action gt create controller gt xaaron api keys 测试中抛出的是 it should not create an api key for th