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"