我正在开发一个 rails 4 应用程序,我有以下 Controller 代码

 def index
  @issue = Issue.find(1)
  @sections = @issue.sections
  @articles = @issue.articles
 end

如果数据库为空并显示错误,则会中断:“找不到 id=1 的问题”。以一种如果数据库中没有任何内容则不会引发错误的方式来检查此问题的正确方法是什么?

最佳答案

您可以使用的一种方法是 exists? 事件记录方法,如下所示:

@issue = Issue.where(id: 1)

if @issue.exists?
    # do something if it exists
else
    # do something if it is missing
end

旁注:由于您试图通过 id 查找,因此您不一定需要 .where 部分;你可以简单地做: Issue.exists?(1)

exists? documentation on APIDoc

关于ruby-on-rails - 如果数据库为空,则处理 ActiveRecord 错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20909385/

10-11 08:14