如何检查包含的ID?

时间:2012-11-30 09:36:09

标签: ruby activerecord

我有ActiveRecord集合,我想检查我的ID。

@items_user_id = Item.select("DISTINCT user_id").where(:user_id => current_user.id)

我检查

@items_user_id.include?(params[:id]) 

返回nil

怎么了?

UPD 1:我需要什么 - param [:id]包含Item的id。用户只能编辑由它们创建的项目。我想检查标识符池中的项标识符是否为用户。

3 个答案:

答案 0 :(得分:0)

简而言之:您正在将苹果与橙子进行比较。

长答案

@items_user_id = Item.select("DISTINCT user_id").where(:user_id => current_user.id)此行将返回ArrayItem元素。

params [:id]可能是StringInteger所以它不会在数组中找到。

答案 1 :(得分:0)

尝试从获得的数组中收集ID,然后检查..

@items_user_id.map(&:id).include?(params[:id])

确保ids(字符串)的数据类型与params [:id]

匹配

答案 2 :(得分:0)

你执行的选择执行此查询:

SELECT DISTINCT user_id FROM items WHERE user_id = ?

这将不会产生任何结果,也只会产生一行只有user_id。

你真正想要什么?