我有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。用户只能编辑由它们创建的项目。我想检查标识符池中的项标识符是否为用户。
答案 0 :(得分:0)
简而言之:您正在将苹果与橙子进行比较。
长答案:
@items_user_id = Item.select("DISTINCT user_id").where(:user_id => current_user.id)
此行将返回Array
个Item
元素。
params [:id]可能是String
或Integer
所以它不会在数组中找到。
答案 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。
你真正想要什么?