Ruby on rails rake路由-没有与[GET]匹配的路由”/&引用;错误
访问Ruby on rails rake路由-没有与[GET]匹配的路由”/&引用;错误,ruby-on-rails,routes,Ruby On Rails,Routes,访问localhost:3000时,我得到了典型的: 没有与[GET]匹配的路由“/” 我不想看到那个错误屏幕。我已经在尝试使用localhost:3000/passbook/v1/passs/,但仍然没有结果,所以我键入: rake routes 得到了这个输出: passbook GET /passbook/v1/passes/:pass_type_identifier/:serial_number(.:format)
localhost:3000
时,我得到了典型的:
没有与[GET]匹配的路由“/”
我不想看到那个错误屏幕。我已经在尝试使用localhost:3000/passbook/v1/passs/
,但仍然没有结果,所以我键入:
rake routes
得到了这个输出:
passbook GET /passbook/v1/passes/:pass_type_identifier/:serial_number(.:format) passbook/passes#show {:pass_type_identifier=>/([\w\d]\.?)+/}
GET /passbook/v1/devices/:device_library_identifier/registrations/:pass_type_identifier(.:format) passbook/registrations#index {:pass_type_identifier=>/([\w\d]\.?)+/}
POST /passbook/v1/devices/:device_library_identifier/registrations/:pass_type_identifier/:serial_number(.:format) passbook/registrations#create {:pass_type_identifier=>/([\w\d]\.?)+/}
DELETE /passbook/v1/devices/:device_library_identifier/registrations/:pass_type_identifier/:serial_number(.:format) passbook/registrations#destroy {:pass_type_identifier=>/([\w\d]\.?)+/}
passbook_log POST /passbook/v1/log(.:format) passbook/logs#create
如何解决这个问题?您还没有告诉Rails您的根路径是什么。你可以这样说
root to: "passes#show"
在config/routes.rb中。之后,您应该在rake routes
输出中看到这一点:
root / passes#show
那它就应该起作用了
附加提示 这可能超出了您的问题范围,但按照测试驱动的方法,您应该首先编写规范:
describe "custom routing" do
it "shows the root page" do
get("/").should route_to("passes#show")
end
end
用于此。在编写路由之前,通过执行$rspec
在控制台中运行测试,并在正确的位置查看测试失败
然后,实现上面的路由,再次运行测试它应该可以工作。通过这种方式,您可以确保您编写的代码刚好满足您的需求,并且确实是您编写的代码允许您访问根路径。这是您从其他人那里继承的rails应用程序吗 考虑到您提供的
rake routes
输出,类似于localhost:3000/passbook/v1/passs/
的url应该根据输出第一行中的规则工作,前提是您使用数据库中的有效值替换EXAMPLE\u PASS\u TYPE\u IDENTIFIER
和EXAMPLE\u SERIAL\u NUMBER
localhost:3000
的错误消息No route matches[GET]“/
是因为rake routes
输出中没有根路径的映射
您可以修改config/routes.rb
文件,并在文件底部添加以下行:
root:to=>“#。更好的方法是深入了解rails框架 添加此行:root:to=>“存折/通行证#显示”
root :to => "passbook/index"