Ruby on rails 如何比较控制器中的枚举模型属性?
我有以下模型对象:Ruby on rails 如何比较控制器中的枚举模型属性?,ruby-on-rails,enums,ruby-on-rails-4.1,Ruby On Rails,Enums,Ruby On Rails 4.1,我有以下模型对象: class ModelObj < ActiveRecord::Base enum type: [:value_a, :value_b] end 根据,可以通过多种方式访问枚举值。一些例子: m.type # => 'value_a' m.value_a? # => true m.value_b? # => false 您提供了控制器代码,您说“不工作”,是否需要使用字符串比较而不是符号?以下是我为使其工作所做的: class SomeC
class ModelObj < ActiveRecord::Base
enum type: [:value_a, :value_b]
end
根据,可以通过多种方式访问枚举值。一些例子:
m.type # => 'value_a'
m.value_a? # => true
m.value_b? # => false
您提供了控制器代码,您说“不工作”,是否需要使用字符串比较而不是符号?以下是我为使其工作所做的:
class SomeController < ApplicationController
def index
m = ModelObj.find(...)
if (ModelObj.types[m.type] == ModelObj.types[:value_a])
# do this ...
end
end
end
class SomeController
您可以在以下位置将其视为当前的最后一个示例:
Conversation.where(“状态?”,Conversation.status[:存档])
但问题是它是一个序数值,而m.type是字符串值。控制器中
m
的值是什么?
class SomeController < ApplicationController
def index
m = ModelObj.find(...)
if (ModelObj.types[m.type] == ModelObj.types[:value_a])
# do this ...
end
end
end