Rails:在视图层中访问枚举值



我在Rails中访问视图层的枚举值时遇到了麻烦。

我有一个名为Rule的ActiveRecord模型,其中定义了一个enum 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关键字。有什么技巧能让枚举显示在视图层吗?

提前感谢!

这个问题是在我破坏了定义枚举的哈希值时引起的。我这样做是为了给选择标签提供选项。

@operations = RowRule.operations
# alter @operations here

我通过克隆哈希来解决这个问题:

@rule_operations = RowRule.operations.clone
# alter @operations here

相关内容

  • 没有找到相关文章

最新更新