如何在Rails应用程序中创建一个为User
模型存储多个值的列?
示例:
我想要一个User
模型并存储多个水果首选项。我需要添加哪种fruit_preference
才能存储多个fruit_preference
值?例如:fruit_preference: apple, orange, pear
我希望稍后在我的应用中找到基于其中一种水果的特定用户。
答案 0 :(得分:3)
回答原始问题 - 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
这样做更好,将用户的成果存储为数据库中的集合,因为非常快速地维护/更改/更新这些集合变得很难。