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 中的第一个。
有人告诉我 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 中的第一个。