我有以下routes.rb文件(part):
resource :user do
resources :orders do
post :verify, :on => :collection
end
end
我的控制器规范如下所示:
require 'spec_helper'
describe OrdersController do
describe "#verify" do
it "verifies a recipe" do
post :verify
end
end
end
规范失败并返
我用的是rails 3+设计。当用户注册时出现错误。该应用程序将重定向到:
http://localhost:3000/users
显示错误消息,但在日志中我看到以下内容:
Started POST "/users" for 127.0.0.1 at Mon Jul 11 20:22:19 -0700 2011
Processing by RegistrationsController#create as HTML
Parameters: {"commit"=>"Create my account", "fb_access_
rails服务器说
Started POST "/user/1/follow"
ActionController::RoutingError (No route matches [POST] "/user/1/follow"):
但使用rake routes
Prefix Verb URI Pattern Controller#Action
followers_user GET /users/:id/followers(.:format) users#followers
followin
我已经在我的日志中得到了很多这样的东西,这导致了很多问题。我甚至不能访问我的RoR应用程序中的某些页面。有什么想法吗?
Started GET "/fastenv" for 98.126.72.138 at 2011-05-25 08:45:37 +0000
ActionController::RoutingError (No route matches "/fastenv"):
Started GET "/fastenv" for 98.126.88.250 at 2011-05-25 08:46:02 +0000
ActionContr
我不明白我是从哪里得到这些请求的。下面我已经粘贴了错误日志,请看一下:
Started POST "/stripe/hook" for 127.0.0.1 at 2013-07-12 12:20:33 +0530
ActionController::RoutingError (No route matches [POST] "/stripe/hook"):
Rendered /usr/local/rvm/gems/ruby-1.9.2-p320@aq/gems/actionpack-3.1.0/lib/action_dispatch/middleware/
我正在尝试访问
POST http://localhost:3000/login
MyEngine路由
devise_for :accounts, { class_name: 'MyEngine::Account', skip: [:sessions, :registration, :password] }
as :account do
post 'login', to: 'sessions#create'
end
我的申请路线
Rails.application.routes.draw do
mount MyEng
我的嵌套资源在模型和routes.rb中关联:
resources :foos do
resources :bars
end
我的应用程序路由正常,但我似乎无法证明任何关于我的嵌套路由的断言:
describe BarsController do
it "should have a route to 'show'" do
assert_generates "/foos/bars/1",
{controller: :bars, action: :show, id: "1"}
end
如果请求如下所示,我的服务器将受到各种各样的攻击:
Started GET "/key/values"
ActionController::RoutingError (No route matches [GET] "/key/values")
Started GET "/loaded"
ActionController::RoutingError (No route matches [GET] "/loaded")
Started GET "/top/left"
ActionController::Routin
我在config/routes.rb文件中添加了以下内容:
match 'login' => 'sessions#new'
match 'logout' => 'sessions#destroy'
match 'auth/:provider/callback' => 'sessions#create'
match 'auth/failure' => 'sessions#new'
match 'sessions/delegate'
我想验证一下,在我的web应用程序中,我的url返回404 Not。我知道它不存在,但我需要通过Rspec的测试来确认这一点。多么?这不管用:
it "404" do
get "/some_url_404"
expect(response.status).to eq 404
end
测试本身失败的原因如下:
ActionController::RoutingError:没有路由匹配获得"/some_url_404“
更新
还没给出答案。
我正在使用BDD方法为JSON编写请求规范。这意味着规范在默认情况下将失败,因为没有真正的实现,包括路由。下面是一个简单的例子:
describe 'POST /users' do
context 'when the request is valid' do
before { post "/users", params: {userName: 'johndoe22'}}
it 'creates and returns the user' do
expect(js
我尝试测试我的RoR应用程序。当我测试导致ActionController::RoutingError在我的控制器中,我得到以下错误: get 1失败和1其他错误:
2.1) Failure/Error: expect(visit meters_path).to raise_error(ActionController::RoutingError)
expected ActionController::RoutingError but was not given a block
# ./spec/integration/meter_behavior_spec.rb
我试图在Rails 3 (v3.0.1)应用程序中设置一个sinatra应用程序,但没有成功。Sinatra宝石(v1.1.0)是使用包安装设置的。
这是我所拥有的。
库目录中的customer_app.rb类-
class CustomerApp < Sinatra::Base
get "/test" do
"Hello World"
end
end
我的routes.rb文件包含-
CustomerService::Application.routes.draw do
root :to => CustomerApp
到目前为止在routes.rb
match 'campaigns_mobile_application', to: 'campaigns#update_mobile_store_application', via: [:post, :get]
在spec_helper.rb中
config.include Rails.application.routes.url_helpers
在controller_spec.rb中
get campaigns_mobile_application_path format: :json # and here I have er
在升级到Rails 3.2.6或Rspec 2.11.0之后,我的规范开始显示路由错误,如下所示:
4) UsersController GET activate activation code not exist
Failure/Error: subject{ get :activate }
ActionController::RoutingError:
No route matches {:controller=>"users", :action=>"activate"}
此外,还会出现after each
我正在尝试为我的一个控制器写一个非常基本的功能测试,但问题是它不能识别我的任何路由。它们都通过HTTP在应用程序中工作,并且可以在rake路径中看到。
事实上我甚至加了一句
puts ActionController::Routing::Routes.inspect
它会在错误发生前输出我所有的路由。
下面是测试结果:
require 'test_helper'
class UsersControllerTest < ActionController::TestCase
test "should get signup" do
get :new
我有Ruby on Rails和Cucumber已经为测试环境迁移了数据库,我可以使用sqliteman查看它。问题是,虽然rake routes显示了我想要的路由,但cucumber返回了一个错误,说这些路由不存在。
路由包括:
movies GET /movies(.:format) {:action=>"index", :controller=>"movies"}
POST /movies(.:format) {:action=>"create",
我得到了这个错误:
Started POST "/admin/reports/2/backfill" for 127.0.0.1 at Thu Dec 29 16:09:00 -0500 2011
ActionController::RoutingError (No route matches "/admin/reports/2/backfill"):
当我发布此表单时:
<%=form_for @report, {:url => report_backfill_path(@report.id), :method => :post} do |
在routes.rb中,我定义:
post '/api/create-entities-for-date-tags', to: 'bulk_update#create_entities_for_date_tags', as: 'createdates'
在我的rspec测试中,我有:
require "spec_helper"
describe BulkUpdateController do
describe 'routing' do
it "routes to #index" do
如果请求如下所示,我的服务器将受到各种各样的攻击:
Started GET "/key/values"
ActionController::RoutingError (No route matches [GET] "/key/values")
Started GET "/loaded"
ActionController::RoutingError (No route matches [GET] "/loaded")
Started GET "/top/left"
ActionController::Routin
我已经创建了一个名为"post“的自定义RESTful操作。它在TransactionsController中显示为一个名为post的(公共)方法。
resources :transactions do
member :post do
post :post
end
end
我有一个表单,配置如下:
<form action="/transactions/25/post">
...
<input id="transaction_submit" commit="commit" type="
我有以下嵌套的资源:
resources :listings do
resources :offers do
member do
put "accept"
put "reject"
end
end
end
在我的列表/show.html.haml中,我有
= button_to "Make Offer", new_listing_offer_path(@listing)
现在,当我单击按钮时,rails会生成一个POST请求,因此会出现一个错误:
Started POST
我创建了一个名为PolicyController的控制器,并像这样嵌套了它的路由:
scope "/your"
resources :shops do
resources :policies
end
end
现在,当我尝试测试这个控制器时,我一直收到这个错误:
1) PoliciesController POST 'create' should be successful
Failure/Error: post 'create'
ActionController::Routing