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 这些集合变得很难。
如何在 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 这些集合变得很难。