转换Rails Active Record查询' find'方法到'其中'方法

时间:2015-10-30 00:07:04

标签: ruby-on-rails activerecord

如何将此查找查询方法转换为使用where方法(只是尝试在rails中改善自己)?

@deals = Deal.find(params[:id])

我已经尝试了

@deals = Deal.where(deal_id: params[:id])

@deals = Deal.where("deal_id = params[:id]")

但是没有得到任何结果 - 我收到了未定义的方法错误和各种其他错误。有什么帮助吗?

由于

3 个答案:

答案 0 :(得分:2)

安全的方法是:

@deals = Deal.where("deal_id = ?", params[:id])

答案 1 :(得分:1)

您可以这样查询:

@deal = Deal.where(id: params[:id])

答案 2 :(得分:1)

@deal = Deal.find(params[:id])

等效

@deal = Deal.where(id: params[:id]).first
如果记录不存在,

.find()将返回异常。

.where()。如果记录不存在,则首先返回nil。