ruby-on-rails - Rails 教程 sample_app 在 Heroku 中失败并显示日志:ActionController::RoutingError(没有路由匹配 [GET] "/about"):

标签 ruby-on-rails heroku railstutorial.org

我正在关注 Rails 教程的在线版本。第 3 章中的 Sample_app 在本地运行良好,但是当推送到 Heroku 时,可以找到主页,但找不到其他页面。在尝试查看“关于”页面后运行 heroku 日志给我(以及其他许多)上面的错误:

2015-08-09T02:56:43.916991+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/about"):

我的routes.rb文件是

Rails.application.routes.draw do
  root 'static_pages#home'
  get 'static_pages/help'
  get 'static_pages/about'
end

我已经仔细按照说明操作了。我尝试删除并重新创建 Heroku 文件。我做了网络搜索并尝试了一些无济于事的事情。我的 gemfile 直接来自本书的在线版本,它使用的是当前版本。


已解决:#thedanotto 让我运行 heroku run rake routes 这表明帮助和关于页面被定向到 {root}/static_pages/about 而不是 {root }/关于。我仍然不明白为什么教程给出了 about 路线,这些路线似乎没有按预期工作,欢迎任何进一步的评论,但我将其标记为已解决。

最佳答案

每当找不到路线时,我都会运行终端命令

rake routes

因为你在 heroku 上,你会想要运行

heroku run rake routes

这将返回类似于以下内容的内容。

Prefix Verb        URI Pattern                       Controller#Action
static_pages_about GET /static_pages/about(.:format) static_pages#about

这表明您可以访问 www.[heroku_app_name].herokuapp.com/static_pages/about 它将带您到您想要的页面。您还可以通过将以下代码行放入 View 中来在 View 中添加指向页面的链接。

<%= link_to("About", static_pages_about_path) %>

这些都是值得了解的好东西。但是让我们谈谈使用 Controller 操作:static_pages#about 和路径 /about

routes.rb 中的以下内容从

get 'static_pages/about'

get "static_pages/about", path:"/about"

或者替代地

get "/about", to: "rabbits#about"

您可以阅读更多关于 Routes here 的信息

关于ruby-on-rails - Rails 教程 sample_app 在 Heroku 中失败并显示日志:ActionController::RoutingError(没有路由匹配 [GET] "/about"):,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31912480/

相关文章:

javascript - 使用 Fetch 和 FormData API 上传多个文件

ruby-on-rails - 控制台应用程序的 Boson vs Thor

heroku - 尝试使用 SQL Alchemy 连接到 Heroku Postgres 时出现 KeyError :'DATABASE_URL'

ruby-on-rails - 如何获取在 heroku 中运行的最后一次迁移的数量?

ruby-on-rails - RailsTutorial 登录 flash 不工作

ruby-on-rails - 在 Ruby on Rails 教程第 8 章中,我收到 "Failure/Error: fill_in "密码",其中:user.password Capybara::ElementNotFound:"

ruby-on-rails - M.Hartl 的 Rails 教程 7.4.1 中的参数数量错误(2 对 1)错误

ruby-on-rails - "has_many through"关联在使用自定义 ActiveRecord::Type(二进制)列时不起作用

ruby-on-rails - accepts_nested_attributes_for 的构建参数问题

python - 在 Heroku 中设置 Python Conda 环境