私はRailsの4Rails 4 - enumの使い方は?
でアプリを作るしようとしている私は、この質問を投稿してアドバイスを得た:Rails 4 -Simple Form how to save key and display value
私はこのアドバイスを実装する方法を把握しようとしています。
瞬間、私は好みのモデルを持っている:
私の好みの形でenum self_governance: {
tier_1: 1,
tier_2: 2,
tier_3: 3,
tier_4: 4,
tier_5: 5
}
enum autonomy: {
tier_11: 1,
tier_21: 2,
tier_31: 3,
tier_41: 4,
tier_51: 5
}
、私が持っている:
<%= f.input :self_governance, as: :select, label: "Select your governance approach", collection: Preference.self_governance.to_a.map { |p| [p.humanize, p] } %>
は私が好みを持っているビューを表示:
<%= @organisation.preference.self_governance.try(:humanize) %>
これをすべて保存して試してみると、このエラーが発生します。
NoMethodError at /preferences/1/edit
undefined method `self_governance' for #<Class:0x007fde5b9fb500>
Did you mean? self_governances
誰でもこの作業を行う方法を確認できますか?
嗜好モデルの列挙型にdef/endタグを追加する必要がありますか?私はコード 'enum'の使用経験がありません
ありがとう!これでうまくいきましたが、このエラーが発生しました。["tier_1"、1]:Arrayのための未定義のメソッド 'humanize 'です。選択行から 'humanise'を削除すると、キーと値の両方を表示するフォームが表示されます。私は値を表示したいが、キーを格納したい。 'enum'は使用しようとする間違ったものですか? – Mel
ハッシュを使用する理由がない場合は、配列に切り替えることができます。非常に多くの場合、列挙型は単純で配列だけです。あなたは単純なキー(番号3のようなもの)を使用しているので、必要な時に配列インデックスを使うことができます(例えば、dbに格納されるもの) – trh
どうすればいいですか?ビューを取得してテキストを表示しようとすると、数値を格納するdb – Mel