从ids数组中删除无效值,并在ROR中获取有效ID

时间:2015-10-02 06:40:20

标签: ruby-on-rails arrays controller

我正在尝试构建一个示例ROR Web应用程序。我试图从请求参数访问一组id,并获取这些参数的结果表格DB。我的参数是一系列ID。我得到了正确的输出。唯一的事情是,如果我在id数组中发送一些错误的值,那么它就不会给出输出。终止时出现错误,表示无法找到这些ID的所有值。我正在通过以下方式完成所有这些工作:

if(params[:m_id])
  @m = @man.me.find(JSON.parse ((params[:m_id]).encode!('UTF-8')))
end

我应该尝试使用Begin Rescue还是其他一些更好的方法。需要一些帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

如果您想获取记录而不是在不存在错误时抛出错误,则可以使用where而不是find

if(params[:medicine_id])
  @m = @man.me.where(id: JSON.parse((params[:m_id]).encode!('UTF-8')))
end

如果您知道只有一个id,则可以在查询结尾添加take

if(params[:medicine_id])
  @m = @man.me.where(id: JSON.parse((params[:m_id]).encode!('UTF-8'))).take
end
相关问题