Rails中一个列字段的多个值

时间:2015-12-07 14:25:41

标签: ruby-on-rails database ruby-on-rails-4 associations

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

示例:

我想要一个User模型并存储多个水果首选项。我需要添加哪种fruit_preference才能存储多个fruit_preference值?例如:fruit_preference: apple, orange, pear

我希望稍后在我的应用中找到基于其中一种水果的特定用户。

1 个答案:

答案 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

这样做更好,将用户的成果存储为数据库中的集合,因为非常快速地维护/更改/更新这些集合变得很难。