Rails:模型可以是几种类型之一 - 如何存储?

时间:2011-10-18 00:38:00

标签: ruby-on-rails model associations

首先,抱歉标题不好,无法想出更具描述性的内容。

我有一个用户模型。我想为该用户设置一个类型,它可以是5个选项之一;无论选项是什么都没关系,任何字符串都可以。我希望能够根据这些选项进行搜索。

我认为我有以下选择:

  1. 将字段添加为带索引
  2. 的模型的字符串
  3. 创建user_type表并执行belongs_to / has_many relationship
  4. 将类型保存为整数并将整数映射到用户模型中定义的常量,使用字符串值(不知道如何执行此操作)
  5. 解决此问题的 Rails Way 是什么,以实现以下目标:

    • 检索
    • 可修
    • 可读

    谢谢

2 个答案:

答案 0 :(得分:1)

我选择#2选项,可让您动态添加用户类型而无需触及代码。如果将来要让用户同时使用不同类型,请查看has_and_belongs_to_many

答案 1 :(得分:0)

这确实取决于你对'type'的含义。如果它是一个角色(例如“管理员”,“主持人”,“用户”等),其中给定用户只能是一种类型,您可以使用字符串列来执行此操作 - 不需要单独的桌子。

如果用户可以同时使用多种类型(“新注册”,“男性”,“学生”,“博客”),用户类型的工作方式更像标签,那么user_type表将完成这项工作。