ruby-on-rails – 如何限制列的值

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何限制列的值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想限制字段的可用值.因此列的值必须来自指定的值集合.是否可能使用迁移/模型?或者我必须手动在我的数据库

解决方法

您将使用验证.这是 a whole Rails guide on the topic.在这种情况下,你正在寻找的具体帮手是 :inclusion,例如:
class Person < ActiveRecord::Base
  validates :relationship_status,:inclusion  => { :in => [ 'Single','Married','Divorced','Other' ],:message    => "%{value} is not a valid relationship status" }
end

编辑2015年8月:从Rails 4.1开始,您可以使用枚举类方法.它需要您的列为整数类型:

class Person < ActiveRecord::Base
  enum relationship_status: [ :single,:married,:divorced,:other ]
end

它也会自动为您定义一些方便的方法

p = Person.new(relationship_status: :married)

p.married? # => true
p.single? # => false

p.single!
p.single? # => true

您可以在这里阅读枚举文档:http://api.rubyonrails.org/v4.1.0/classes/ActiveRecord/Enum.html

原文链接:https://www.f2er.com/ruby/266011.html

猜你在找的Ruby相关文章