我正在构建一个新模型,我想添加一个属性是一个选择器。你怎么做到这一点?什么是课堂?Rails模型属性选择器
我有标准:整数,:日期时间等
我想类型:
选择器将有多种选择[“跑”,“坐”,“驱动器”,“飞“]
感谢
我正在构建一个新模型,我想添加一个属性是一个选择器。你怎么做到这一点?什么是课堂?Rails模型属性选择器
我有标准:整数,:日期时间等
我想类型:
选择器将有多种选择[“跑”,“坐”,“驱动器”,“飞“]
感谢
有红宝石在这个没有阶级,你可以得到最接近的是:
class YourModel < ActiveRecord::Base
MyOptions = ['run', 'ride', 'drive', 'fly']
validates :my_attributes, inclusion: {in: MyOptions}
end
如果你想走得更远一步,您可以覆盖setter方法如果值是不是在允许值时抛出异常:
class InvalidValue < StandardError
end
def my_attribute=(value)
raise InvalidValue.new unless MyOptions.include?(value)
super
end
还有的differentsolutionsavailableloads用于实现Rails的模型中的枚举属性。
这些往往来自同一个视角,BroiSatse的答复处理这一问题,但提供更全面的验证,辅助方法等
采取措施,通过这些链接看看,看看哪个最适合你的需求。
https://github.com/electronick/enum_column
https://github.com/jeffp/enumerated_attribute
驼峰是类名的约定。我会去一个常数:
MY_OPTIONS = %w(run ride drive fly).freeze
谢谢,我怎么会产生这个? rails生成迁移add_type_to_events类型:??? – Marcus
请注意名为'type'的属性:您还需要将'self.inheritance_column = nil'添加到您的类中。对于上面的问题,您可以像往常一样生成字符串列 - 它将作为字符串内部存储。 'rails g migration add_ _to_ :string' –
BroiSatse