在 Rails 4 中,我想设置一个等于 ActiveRecord 对象的变量,但前提是它存在。例如,我想将实例变量 @admin
设置为等于具有我通过 params 传入的给定密码的管理员。这就是我现在的做法:
if Admin.find_by_email(params[:email])
@admin = Admin.find_by_email(params[:email])
end
我需要使用电子邮件 'params[:email]'
检查管理员是否存在,以处理传入无效电子邮件的极端情况。但是,这种方法需要我做 2数据库请求。我宁愿只做一件事情,完成同样的事情。有什么建议吗?
最佳答案
只需删除 if 语句。如果找不到任何内容,像 find_by_email 这样的动态查找器将返回 nil。
然后当代码依赖于管理员存在
unless @admin.blank?
#do stuff
end
关于ruby-on-rails - 在 Rails 中检查对象是否存在并设置为等于的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22689207/