Rails 中一列字段的多个值

Multiple values for one column field in Rails

如何在 Rails 应用程序中为 User 模型创建一个存储多个值的列?

示例:

我想要一个 User 模型并存储多个水果偏好。我需要添加什么类型的 fruit_preference 才能存储多个 fruit_preference 值?如:fruit_preference: apple, orange, pear

我想稍后在我的应用程序中根据其中一种水果找到特定用户。

回答原始问题 - array data type

但你真正需要的是associations

class User
 has_many :fruits
end

class Fruit
  belongs_to :user
end

有了这样的设置,您将能够查询用户以找到具有特定水果的用户:

User.joins(:fruits).where(fruits: {name: 'apple'})

同样,作为拥有所有用户的水果(因为他可以有多个):

User.first.fruits
#=> collection of Fruit objects

这样更好,将用户的水果作为一个集合存储在数据库中,因为很快 maintaining/changing/updating 这些集合变得很难。