8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rails activeadmin enumを設定したモデルを登録する方法

Posted at

activeadminを導入して、データを登録しようとしたらエラーが出たので、対処法を記す。

activeadminのインストールは省略する。
Animeをactiveadminの管理下に置く。

$ bin/rails g active_admin:resource Anime

app/admin/anime/rb
ActiveAdmin.register Anime do

  permit_params :title, :update_wday

end

Animeにはenumが設定されている。
update_wdayは更新曜日を意味する。

app/models/anime.rb
class Anime < ActiveRecord::Base
.
.
.
  enum update_wday: {
    sunday: 0,
    monday: 1,
    tuesday: 2,
    wednesday: 3,
    thursday: 4,
    friday: 5,
    saturday: 6
  }
.
.
.
end

上記のように設定すると、下記のような画面になる。

スクリーンショット 2015-10-30 11.25.48.png

Create Animeをクリックすると下記のようなエラーが出る。

スクリーンショット 2015-10-30 11.29.48.png

enumのキーをPOSTしてやればよいので、下記のような設定を加える。

app/admin/anime/rb
ActiveAdmin.register Anime do

  permit_params :title, :update_wday

  form do |f|
     f.inputs "Anime" do
       f.input :title
       f.input :update_wday, as: :select, collection: Anime.update_wdays.keys
     end
     f.actions
   end
end

スクリーンショット 2015-10-30 11.40.17.png

これでデータが登録できるようになった。
以上。

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?