Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails “需要找到全部”;俱乐部“;其中,列“;“用户列表”;包括「;当前用户id;_Ruby On Rails - Fatal编程技术网

Ruby on rails “需要找到全部”;俱乐部“;其中,列“;“用户列表”;包括「;当前用户id;

Ruby on rails “需要找到全部”;俱乐部“;其中,列“;“用户列表”;包括「;当前用户id;,ruby-on-rails,Ruby On Rails,我需要找到所有“俱乐部”,其中列“userlist”(包含一个用户id数组)包含“current_user.id” 下面是控制器中的一行代码,我正试图使用它来实现这一点: @userclubs=Club.where('userlist in(?)、当前用户id)。全部 我最终得到一个空数组:[] 这是我在视图中使用的代码: @userclubs,:label\u method=>:name,:value\u method=>:name,:as=>:复选框,:item\u wrapper\u cl

我需要找到所有“俱乐部”,其中列“userlist”(包含一个用户id数组)包含“current_user.id”

下面是控制器中的一行代码,我正试图使用它来实现这一点:
@userclubs=Club.where('userlist in(?)、当前用户id)。全部

我最终得到一个空数组:
[]

这是我在视图中使用的代码:
@userclubs,:label\u method=>:name,:value\u method=>:name,:as=>:复选框,:item\u wrapper\u class=>'内联'>

如果我将控制器代码更改为
@userclubs=Club.all
,我会将所有俱乐部作为复选框,但我只希望显示用户所属的俱乐部


我可能完全错了,但我对RoR还不熟悉,似乎找不到正确的方法。

其中的
方法是SQL上的薄层。在Rails眼中,您的属性只是一个数组。从数据库的角度来看,
userlist
是一个文本字段,您只能将其作为文本字段进行搜索

虽然搜索序列化结构通常不实用,如中所述,在平面数组的情况下,您可以对列执行正则表达式搜索,以查找相关的用户id,注意确保用户id被适当的单独字符包围,例如:

userlist rlike…

其中,
是构造的正则表达式,包括
当前用户id的值,并由适当的单独字符包围

因为您使用的是Postgres,所以可以将列数据类型更改为本机
数组
,但这只是一个微小的改进,如“搜索数组”中所述


除非您遇到特殊情况,否则最好使用Rails关联机制存储这样的关系。

用户列表的列类型是什么,您使用的是什么数据库?类型是文本,数据库是PG。请忽略此消息。因此,您能解释一下您所说的
用户列表
“包含一个用户id数组”?我确实尝试了
俱乐部。其中(:userlist=>current\u user.id)
并尝试了另一个…我总是得到类似于#的东西,除非我添加
。所有
,然后我只得到
[]
在遵循了您提供的链接并对其进行了一点操作之后,我已经让它开始工作,直到我尝试设置复选框。当我只有一个名称数组(即
[Club 1,Club 2]
)时,是否有办法设置
:label\u method=>
:value\u method=>
?我真的希望标签和值相同。