I've got a Rails 4.1 app in which I use an enum to represent the privacy level of an object.
In my schema:
t.integer "privacy_level", default: 0
In my model:
enum privacy_level: { privacy_private: 0, privacy_trusted: 1, privacy_public: 2 }
In my ActiveAdmin register file:
index do
column :privacy_level
default_actions
end
form do |f|
f.inputs "Edit My Model" do
f.input :privacy_level
end
f.actions
end
On the ActiveAdmin index page, it works great. The privacy level of each object shows up as "privacy_private", "privacy_trusted", and "privacy_public".
However, when I try to edit an object, the input type is a number box with up and down arrows which allow me to put any integer in, regardless of whether or not the integer is a valid privacy level (even negative values).
What I would like to see is a dropdown (select) input with the three enumerated string values I defined in my model.
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: