RoR用户模型有多种语言

时间:2014-07-27 17:57:39

标签: mysql ruby-on-rails model

我正在编辑设备生成的用户模型,为用户添加一个语言字段,在那里他可以添加一个或多个他从ComboBox说的语言。

我的问题是在mysql中表示它的最佳方式是什么。 我不知道他说的语言数量,所以最多可能达到20种语言。

我想到了创建一个包含LanguageId,LanguageName和LanguageCode的语言模型 然后将has_and_belongs_to_many与用户模型一起使用,并拥有两个模型的连接表。

我不确定这是否是解决此问题的正确方法。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您也可以拥有一个序列化数组,并将所有选定的语言存储在用户模型的字符串中。

这取决于您计划如何使用存储的语言 - 用户数据,如果您需要将它们用作搜索参数,那么所有这些都意味着您应该使用HABTM来表示它。

如果您只需要在用户显示页面上显示数据,则不需要将其存储在字符串或文本属性上,并序列化< - >在必要时进行反序列化可以起作用,尽管它可能会感到奇怪。