0

我有 ActiveRecord 集合,并且我想在其中检查我的 ID。

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

我检查

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

返回零

怎么了?

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

4

3 回答 3

0

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

长答案

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

params[:id] 可能会StringInteger数组中找不到。

于 2012-11-30T09:42:13.400 回答
0

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

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

确保 ids(string) 的数据类型与 params[:id] 匹配

于 2012-11-30T09:59:55.910 回答
0

您所做的选择执行此查询:

SELECT DISTINCT user_id FROM items WHERE user_id = ?

这将不会产生任何结果,或者会产生只有 user_id 的单行。

你真正想要的是什么?

于 2012-11-30T10:05:25.353 回答