2016-07-05 8 views
1

Railsのビューレイヤーから列挙型値にアクセスする際に問題があります。Rails:ビューレイヤーの列挙型値へのアクセス

私はoperationが定義された列挙型を持っているRuleという名前のActiveRecordのモデルを持っている:

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

を私は「OP」に列の名前を変更しようと、それは問題を解決しませんでした。 – warder57

答えて

0

この問題は、列挙型を定義したハッシュを閉鎖したときに発生しました。私は選択タグのオプションを提供するためにこれをしました。

@operations = RowRule.operations 
# alter @operations here 

私はハッシュをクローニングすることによって、これを解決:

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