处理Rails中的类别/复选框组

时间:2013-12-20 23:55:05

标签: ruby-on-rails postgresql data-structures ruby-on-rails-4

我有一个包含大约10-15个不相关的复选框组的表单,每个复选框都需要能够选择多个值。为每个组创建一个新表和HABTM关联似乎有点矫枉过正。

例如,给定一个视频表的表单,该表应捕获以下组的选项。用户应该能够为每个复选框选择多个复选框。

Emotions  
[x]Sad  
[x]Angry  
[ ]Happy  
[ ]Hopeful

Landscape
[x]Mountains  
[ ]City  
[ ]Indoors  
[x]Water

Industry 
[ ]Arts  
[x]Design  
[x]Technology  
[ ]Education

我一直在考虑使用以下选项来解决这个问题,但没有一个感觉正确。

选项1
创建Categories表,并将每个表关联到CategoryGroups表。然后将已检查的category_ids数组存储到video.emotions video.landscape和video.industry列中。

选项2
将哈希值/ hstore值直接存储到列中。

选项3
为每组复选框创建表。然后是剪辑和选项的HABTM关联或连接表。好像数据库可能会变得混乱。

选项4
为每个选项创建新列。好像桌子结构可能变得笨拙。

搜索(可能使用solr)将成为应用程序的重要组成部分,因此字段需要易于查询和搜索。有没有办法处理这样的事情?

1 个答案:

答案 0 :(得分:0)

一个想法是将情绪,风景和行业存储为acts-as-taggable-on的标签。这样,您可以保持模型清洁,同时还可以轻松搜索这些字段。

它似乎也有意义,因为它们看起来像您要添加到此模型的预定义标记。