Ruby on rails 在Mongoid中处理多个标题、描述和关键字

Ruby on rails 在Mongoid中处理多个标题、描述和关键字,ruby-on-rails,forms,mongodb,orm,mongoid,Ruby On Rails,Forms,Mongodb,Orm,Mongoid,我有一个元素,可以有一个或一些标题,一个或一些描述和一个或一些关键字列表。在web视图中,我们有一些“添加可选标题”按钮。我想知道在Mongoid中设计这种模式的正确方法是什么 我在考虑实施这3种解决方案中的一种(可能从最坏到最好): 1) 将字段添加到合理的数字 class Video include Mongoid::Document field :alt_title_1 field :alt_title_2 field :alt_title_3

我有一个元素,可以有一个或一些标题,一个或一些描述和一个或一些关键字列表。在web视图中,我们有一些“添加可选标题”按钮。我想知道在Mongoid中设计这种模式的正确方法是什么

我在考虑实施这3种解决方案中的一种(可能从最坏到最好):

1) 将字段添加到合理的数字

 class Video
     include Mongoid::Document
     field :alt_title_1
     field :alt_title_2
     field :alt_title_3
     field :alt_description_1
     field :alt_description_2
     field :alt_description_3
     field :alt_keywords_1
     field :alt_keywords_2
     field :alt_keywords_3
 end
2) 或者,将此字段定义为类型:数组

 class Video
     include Mongoid::Document
     field :titles, type: Array
     field :descriptions, type: Array
     field :keywords, type: Array
 end
3) 或者,有复杂的关系

 class Video
     include Mongoid::Document
     embeds_many :titles, :descriptions, :keywords
 end

 class Title
     include Mongoid::Document
     embedded_in :video
     field :value
 end

 class Description
     include Mongoid::Document
     embedded_in :video
     field :value
 end

 class Keyword
     include Mongoid::Document
     embedded_in :video
     field :value, type: Array
 end

你认为什么更有意义?有更好的解决方案吗?

我个人最喜欢2个。这些只是字符串,所以有多个模型是没有意义的。

我也会选择第二个,原因与Jeff相同。如果我必须验证输入,我会进行自定义验证。

我明白了,您知道如何使用阵列进行验证吗?我只是用这个。