Ruby on rails Rails模型属性选择器

Ruby on rails Rails模型属性选择器,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在构建一个新模型,我想添加一个作为选择器的属性。你是怎么做到的?什么课 我有标准:整数,:datetime等 我想要一种: 选择器将有多种选择['run'、'ride'、'drive'、'fly'] 谢谢ruby中没有这方面的课程,您能获得的最接近的是: class YourModel < ActiveRecord::Base MyOptions = ['run', 'ride', 'drive', 'fly'] validates :my_attributes, inclu

我正在构建一个新模型,我想添加一个作为选择器的属性。你是怎么做到的?什么课

我有标准:整数,:datetime等

我想要一种:

选择器将有多种选择['run'、'ride'、'drive'、'fly']


谢谢

ruby中没有这方面的课程,您能获得的最接近的是:

class YourModel < ActiveRecord::Base
  MyOptions = ['run', 'ride', 'drive', 'fly']

  validates :my_attributes, inclusion: {in: MyOptions}
end
classyourmodel
如果要更进一步,如果值不在允许的值中,可以重写setter以引发异常:

class InvalidValue < StandardError
end

def my_attribute=(value)
  raise InvalidValue.new unless MyOptions.include?(value)
  super
end
class InvalidValue
ruby中没有用于此目的的类,您可以获得的最接近的类是:

class YourModel < ActiveRecord::Base
  MyOptions = ['run', 'ride', 'drive', 'fly']

  validates :my_attributes, inclusion: {in: MyOptions}
end
classyourmodel
如果要更进一步,如果值不在允许的值中,可以重写setter以引发异常:

class InvalidValue < StandardError
end

def my_attribute=(value)
  raise InvalidValue.new unless MyOptions.include?(value)
  super
end
class InvalidValue
ruby中没有用于此目的的类,您可以获得的最接近的类是:

class YourModel < ActiveRecord::Base
  MyOptions = ['run', 'ride', 'drive', 'fly']

  validates :my_attributes, inclusion: {in: MyOptions}
end
classyourmodel
如果要更进一步,如果值不在允许的值中,可以重写setter以引发异常:

class InvalidValue < StandardError
end

def my_attribute=(value)
  raise InvalidValue.new unless MyOptions.include?(value)
  super
end
class InvalidValue
ruby中没有用于此目的的类,您可以获得的最接近的类是:

class YourModel < ActiveRecord::Base
  MyOptions = ['run', 'ride', 'drive', 'fly']

  validates :my_attributes, inclusion: {in: MyOptions}
end
classyourmodel
如果要更进一步,如果值不在允许的值中,可以重写setter以引发异常:

class InvalidValue < StandardError
end

def my_attribute=(value)
  raise InvalidValue.new unless MyOptions.include?(value)
  super
end
class InvalidValue
在Rails模型中实现可枚举属性有多种方法

这些方法倾向于从与BroiSatse答案相同的角度来处理问题,但提供了更全面的验证、帮助方法等

浏览这些链接,看看哪些最适合您的需要

在Rails模型中实现可枚举属性有多种方法

这些方法倾向于从与BroiSatse答案相同的角度来处理问题,但提供了更全面的验证、帮助方法等

浏览这些链接,看看哪些最适合您的需要

在Rails模型中实现可枚举属性有多种方法

这些方法倾向于从与BroiSatse答案相同的角度来处理问题,但提供了更全面的验证、帮助方法等

浏览这些链接,看看哪些最适合您的需要

在Rails模型中实现可枚举属性有多种方法

这些方法倾向于从与BroiSatse答案相同的角度来处理问题,但提供了更全面的验证、帮助方法等

浏览这些链接,看看哪些最适合您的需要


Camelcase是类名的约定。我会用一个常数:

  MY_OPTIONS = %w(run ride drive fly).freeze

Camelcase是类名的约定。我会用一个常数:

  MY_OPTIONS = %w(run ride drive fly).freeze

Camelcase是类名的约定。我会用一个常数:

  MY_OPTIONS = %w(run ride drive fly).freeze

Camelcase是类名的约定。我会用一个常数:

  MY_OPTIONS = %w(run ride drive fly).freeze

谢谢,我如何生成这个?rails生成迁移将类型添加到事件类型:???注意名为
type
的属性:您还需要将
self.heritation\u column=nil
添加到类中。对于上面的问题,您可以像往常一样生成字符串列-它将作为字符串存储在内部
railsg迁移添加到:string
?rails生成迁移将类型添加到事件类型:???注意名为
type
的属性:您还需要将
self.heritation\u column=nil
添加到类中。对于上面的问题,您可以像往常一样生成字符串列-它将作为字符串存储在内部
railsg迁移添加到:string
?rails生成迁移将类型添加到事件类型:???注意名为
type
的属性:您还需要将
self.heritation\u column=nil
添加到类中。对于上面的问题,您可以像往常一样生成字符串列-它将作为字符串存储在内部
railsg迁移添加到:string
?rails生成迁移将类型添加到事件类型:???注意名为
type
的属性:您还需要将
self.heritation\u column=nil
添加到类中。对于上面的问题,您可以像往常一样生成字符串列-它将作为字符串存储在内部<代码>rails g迁移添加到:字符串