ruby-on-rails - 通过永久链接查找项目,如果找不到则返回 404

标签 ruby-on-rails ruby http-status-code-404

我更改了我的显示 Controller 以通过永久链接而不是 ID 查找记录(为了 SEO 多汁)。

def show
  @project = Project.find_by_permalink(params[:id])
end

但是,如果我输入 localhost:3000/projects/foo(并且没有带有 foo 永久链接的项目),我会收到 500 服务器错误而不是 404 未找到。

这是为什么,我该如何解决?

最佳答案

这可能是 2.3 添加的内容,但您可以像这样在动态查找器之后使用感叹号:

def show
  @project = Project.find_by_permalink!(params[:id])
end

如果未找到任何内容,则会引发 ActiveRecord::RecordNotFound 异常。

关于ruby-on-rails - 通过永久链接查找项目,如果找不到则返回 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/679962/

相关文章:

ruby-on-rails - ActionMailer Observer 中的 Message.body 为空

ruby-on-rails - 为 Rails 中的表格动态创建模型

ruby-on-rails - Rspec Capybara 测试与 ajax 调用不更新记录

ruby - 导轨 : Remove substring from the string if in array

ruby - 抓取 AngularJS 应用程序

java - 无法使用嵌入式 Tomcat 浏览到 Spring Boot 应用程序

c# - 如何重现不常见的 404?

.net - Web API 接口(interface)在本地工作,但在部署到 Azure 网站后得到 404

ruby-on-rails - Rails 2.3.5 中的夏令时计算不正确?

ruby-on-rails - ActiveRecord::Relation.concat 在 Rails 5 中失败