我无法从Rails中的视图层访问枚举值。
我有一个名为Rule
的ActiveRecord模型,它定义了枚举operation
:
class Rule < ActiveRecord::Base
enum operation: [:says, :contains]
end
我已将规则传递给我的视图,我正在尝试访问操作字段。尽管有一个值,该对象仍会返回nil
。
= rule.inspect #=> #<Rule id: 2, operation: 1>
= rule.operation #=> Nil
= rule.operation.class #=> NilClass
当我尝试从我的控制台访问操作字段时,它可以正常工作。
rule.inspect #=> #<Rule id: 2, operation: 1>
rule.operation #=> "contains"
我确认operation
不是ruby / rails关键字。是否有一些技巧可以让枚举显示在视图层中?
提前致谢!
答案 0 :(得分:0)
当我破坏定义枚举的哈希时,就会引起这个问题。我这样做是为了为select标签提供选项。
@operations = RowRule.operations
# alter @operations here
我通过克隆哈希来解决这个问题:
@rule_operations = RowRule.operations.clone
# alter @operations here