Rails 查找方法挂了
Rails find method hanging
rails 的新手,有点困惑。
我有以下情况:
if Agency.find(params[:agency]).id
@parent = Agency.find(params[:agency]).id
end
它挂在第一行,returns 错误,"Couldn't find Agency without an ID"..这是我的开头...
如果它找不到该机构,那么它不应该做任何事情(至少那是我的意图)。否则设置@parent实例。
检查它是否可以找到它(代理)的正确语法是什么?
编辑:
搜索文档我意识到了这一点,
"The find method will raise an ActiveRecord::RecordNotFound exception unless a matching record is found for all of the supplied primary keys."
澄清一下,find 方法需要将 id 作为参数。如果您的 Agency 模型中有一个名为 agency 的列,您可以使用 find_by,例如。 Agency.find_by(agency: params[:agency]).id
多亏了文档和@aruprakshit,我才意识到为什么我一开始没有正确检查它。
文档状态,"The find method will raise an ActiveRecord::RecordNotFound exception unless a matching record is found for all of the supplied primary keys." http://guides.rubyonrails.org/active_record_querying.html
我没有尝试按照建议查看 params[:agency]
是否真的存在。将我的代码调整为以下内容后:
if Agency.exists?(params[:agency])
@parent = Agency.find(params[:agency]).id
end
它就像一个魅力。
如果代理记录存在,如果您只想设置 @parent
变量,请先使用 exists?
检查其是否存在
if Agency.exists?(params[:agency])
@parent = Agency.find(params[:agency]).id
end
rails 的新手,有点困惑。
我有以下情况:
if Agency.find(params[:agency]).id
@parent = Agency.find(params[:agency]).id
end
它挂在第一行,returns 错误,"Couldn't find Agency without an ID"..这是我的开头...
如果它找不到该机构,那么它不应该做任何事情(至少那是我的意图)。否则设置@parent实例。
检查它是否可以找到它(代理)的正确语法是什么?
编辑:
搜索文档我意识到了这一点,
"The find method will raise an ActiveRecord::RecordNotFound exception unless a matching record is found for all of the supplied primary keys."
澄清一下,find 方法需要将 id 作为参数。如果您的 Agency 模型中有一个名为 agency 的列,您可以使用 find_by,例如。 Agency.find_by(agency: params[:agency]).id
多亏了文档和@aruprakshit,我才意识到为什么我一开始没有正确检查它。
文档状态,"The find method will raise an ActiveRecord::RecordNotFound exception unless a matching record is found for all of the supplied primary keys." http://guides.rubyonrails.org/active_record_querying.html
我没有尝试按照建议查看 params[:agency]
是否真的存在。将我的代码调整为以下内容后:
if Agency.exists?(params[:agency])
@parent = Agency.find(params[:agency]).id
end
它就像一个魅力。
如果代理记录存在,如果您只想设置 @parent
变量,请先使用 exists?
if Agency.exists?(params[:agency])
@parent = Agency.find(params[:agency]).id
end