Rails find_by_path 方法参数

Rails find_by_path method parameters

有人告诉我 find_by_path 方法可能是比 where

更好的解决方案

我在迁移文件中有这个片段...

prescriber_activity_request = InsightReportMenuItem.where(name: "Prescriber Activity With Patient").first

我是 rails 的新手。我的问题是,如果我可以在这里使用 find_by_path,我的路径是什么样的?

我想我对数据库如何构建其路径感到困惑。

这取决于您对数据库的需求。如果你调用 .where,你总是会得到一个非零结果(如果没有找到符合你条件的东西,它将是一个空数组)。

在您的情况下,如果未找到任何内容,您将收到 nil 错误,因为在空数组上调用 .first 会出错。

如果您要检查是否存在单个记录,

find_by_name('Prescriber Activity With Patient')

...是您的 find_by 路径。所以你可以这样做

if @irmi = InsightReportMenuItem.find_by_name( "Prescriber Activity With Patient")
  #redirect to insight_report_menu_item_path(@irmi) or whatever
else
  #redirect_to root_path or whatever
end

如果您使用 .where 可以使用 .any?然后调用 .first if .any? returns 是的。希望有所帮助。作为记录,您可以执行 find_by_(InsightReportMenuItem table 中的任何属性)。例如:

InsightReportMenuItem.find_by_id(1)

将产生 table 中的第一个。