我有一张表,模型中有一个"属于".

但是,有时候xx_id是空的.

你有什么建议?

推荐答案

使用find方法时,Rails总是会引发ActiveRecord::RecordNotFound异常.然而,当没有找到记录时,find_by_*个方法返回nil个.

ActiveRecord documentation告诉我们:

RecordNotFound-没有记录响应find方法.要么

如果您想在找不到记录时返回nil,只需按如下方式处理异常:

begin
  my_record = Record.find params[:id]
rescue ActiveRecord::RecordNotFound => e
  my_record = nil
end

Ruby-on-rails相关问答推荐

在VP中部署rails 7和nginx

Sweet Alert 2 在 Rails 7 应用程序中无法正常工作

当我必须更改 rspec 中的方法时,如何检测时间?

Rails:关于yields

Rails:用于创建固定长度 char(12) 列的迁移

如何在 Rails 3 中使用 Capybara 单击具有相同文本的第二个链接?

骨干model.destroy()即使工作正常也会调用错误回调函数?

运行多个 Rails Server 实例

Rails 3:如何正确显示textarea中的文本?

如何在 rspec 中运行单个测试?

不带参数的 request.fullpath

如何将变量传递给render_to_string?

Rspec/Capybara 正在加载,循环要求被认为是有害的

我可以将默认值传递给 rails 生成迁移吗?

Rails:将所有未知路由重定向到 root_url

Heroku - 在浏览器中显示当前提交的哈希

如何更改 Rails 3 控制器中视图文件的默认路径?

按照给定 ID 数组的顺序按 ID 查找模型记录

Rails:如何将日期时间字符串解析为特定时区

sass-rails 助手image-url、asset-url在 rails 3.2.1 中不起作用