How to Properly Configure Rails 4.1 Enums in ActiveAdmin
In order to use enums in ActiveAdmin's filters use:
filter :level, as: :select, collection: Model.levels
assuming an enum
attribute named level
This will make sure to actually put the integer value in the query and not the key name.
do this:
f.input :privacy_level, :as => :select, :collection => privacy_level.keys.to_a
Building off of Jack's answer, here's what worked for me. Say your ActiveRecord model is Tweets
:
f.input :privacy_level, as: :select, collection: Tweet.privacy_levels.keys
Key things to note here:
- your ActiveRecord has a useful dictionary (available at enum_name.pluralize) of enum keys to values.
- using strings (and ignoring the underlying integer representation) makes it easier to write to the enum value.