Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 Rspec错误:ActionController::UrlGenerationError:没有路由匹配_Ruby On Rails 4_Rspec_Devise - Fatal编程技术网

Ruby on rails 4 Rspec错误:ActionController::UrlGenerationError:没有路由匹配

Ruby on rails 4 Rspec错误:ActionController::UrlGenerationError:没有路由匹配,ruby-on-rails-4,rspec,devise,Ruby On Rails 4,Rspec,Devise,我已经在谷歌和这个网站上浏览了很多次,但是没有找到一个解决这个错误的方法。如果有人能帮忙,我将不胜感激 所有控制器测试都失败,但消息大致相同 在我看来,它需要的所有数据都在那里,但它仍在失败。为了让这个测试正常工作,它只需要路由中的post id,不需要登录或类似的东西 如果我明白是什么导致了这个错误,我相信我可以让其余的工作正常进行。下面是一个示例(创建上述错误的示例) 在posts控制器中有一条与show操作对齐的路由 …所以我有点不确定为什么这个测试(以及控制器的所有测试)失败了 从2

我已经在谷歌和这个网站上浏览了很多次,但是没有找到一个解决这个错误的方法。如果有人能帮忙,我将不胜感激

所有控制器测试都失败,但消息大致相同

在我看来,它需要的所有数据都在那里,但它仍在失败。为了让这个测试正常工作,它只需要路由中的post id,不需要登录或类似的东西

如果我明白是什么导致了这个错误,我相信我可以让其余的工作正常进行。下面是一个示例(创建上述错误的示例)

在posts控制器中有一条与show操作对齐的路由

…所以我有点不确定为什么这个测试(以及控制器的所有测试)失败了


从2013年起,我就开始研究这里的问题,这些问题都涉及到这一点,但它们并没有为我解决。我无法让rspec找到这条路线,因此非常感谢您的帮助。

您不需要将参数置于键
params

describe "GET #show" do
  it "assigns the requested post as @post" do
    post = FactoryGirl.create(:post)
    get :show, { id: post.to_param }, session: valid_session
    expect(assigns(:post)).to eq(post)
  end
end

您是否尝试过此选项:
get:show,id:post.to_参数,session:valid_session
?您是否指定了
type::controller
?如下所示:
RSpec.descripe PostsController,type::controller
describe "GET #show" do
  it "assigns the requested post as @post" do
    post = FactoryGirl.create(:post)
    get :show, { id: post.to_param }, session: valid_session
    expect(assigns(:post)).to eq(post)
  end
end