【问题标题】:Rails - ActionController::RoutingError (No route matches [GET] "/generic.png"):Rails - ActionController::RoutingError (没有路线匹配 [GET] "/generic.png"):
【发布时间】:2014-12-11 20:32:18
【问题描述】:

我最近更新了我的 gemfile,并注意到服务器在我的开发环境中记录了以下内容 - ActionController::RoutingError (No route matches [GET] "/generic.png")

在生产中(Heroku) - 我得到以下信息 -

Started GET "/users/generic.png"
ActiveRecord::RecordNotFound (Couldn't find User with 'id'=generic):

有没有其他人遇到过这种情况?它不会破坏应用程序,但对我来说是个谜。

我正在使用 devise 和 cancancan。我对我的代码进行了搜索,我能看到的唯一提到 generic.png 的地方是在日志中,这让我觉得它被埋在了 gem 的某个地方。

【问题讨论】:

  • 设计检查 /users/:id 作为其默认路径。如果任何图像存储在同一路径上或被引用,则可能会出现错误
  • generic 只是一个图像,为什么会被用户调用?
  • 同时检查视图文件中调用 generic.png 的位置
  • 图像在您的应用程序结构中的什么位置?是在 assets/images 下还是在 /public 下?

标签: ruby-on-rails devise cancancan


【解决方案1】:

您似乎在 /users/ 页面上有图像 generic.png 并且试图在 /users/ 而不是资产下获取它?现在它会尝试查找具有通用 ID 和响应类型 png(如 json 或 html)的用户,而这些用户可能都不存在。

【讨论】:

  • 使用 Devise,我相信很多用户页面都隐藏在 gem 中 - 我搜索了我的代码,但找不到任何提及该文件的内容。我已经相应地更新了 q。
  • 好吧,在这种情况下,它可能是由一些意外造成的。例如,如果您尝试访问 http:///users/generic.png,您应该会在其中收到相同的错误消息?
  • 当我按照你的建议输入网址时,应用程序崩溃了,并且开发日志有 ActiveRecord::RecordNotFound (Couldn't find User with 'id'=generic):
  • 这又是你之前得到的。这只是为了表明任何人试图意外访问该 URL 都可能发生这种情况,所以也许你应该暂时放过它,如果它继续发生,再看看它。
  • 感谢 Sanfor - 可能是非常好的建议。在应用程序的不同部分工作,我刚刚发现 - Started GET "/chapters/generic.png" for 127.0.0.1 at 2014-10-16 14:30:19 +0100 Processing by ChaptersController#show as PNG - 这很奇怪,但它并没有杀死任何东西。干杯,丹
猜你喜欢
  • 1970-01-01
  • 2011-10-29
  • 2013-04-21
  • 2018-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-09
  • 1970-01-01
相关资源
最近更新 更多