Decidimでコンポーネントを追加する方法
Decidimは各コンポーネントやスペースがRails Engineとして実装されているということもあり、新しくコンポーネント等を追加したいと思っても、単純に「Gemfileに追加してbundle install」といったやり方では追加できません。というわけで、その手順をかんたんに書いておきます。
コンポーネントを追加する
やり方の基本としては Updating Decidimに書かれているアップデートのやり方と同様になります(gemを更新するのとgemを追加するのの違いになります)。
Gemfileにgemを追加する
Gemfileに追加したいコンポーネントのgemを、いつものgemの構文で追加します。
たとえば、Conferenceコンポーネントを追加したい場合、decidim-conferences
gemを以下のように追加します。
source "https://rubygems.org"
ruby RUBY_VERSION
gem "decidim", "0.24.3"
gem "decidim-conferences", "0.24.3"
# (以下略)
gemをインストールする
Bundlerのbundle installコマンドを使って追加したgemをインストールします。
bundle install
migrationファイルを生成する
ここがポイントです。
Decidimのコンポーネントのgemは新しくDBのテーブルを使うものがあるため、テーブルを作ったり変更したりするためのmigrationという作業が必要になります。このためのmigrationファイルを作成するコマンドがdecidim専用に設けてあるので、これを実行します。
bin/rails decidim:upgrade
こうすると、db/migrate/
ディレクトリ以下にファイルが(場合によってはたくさん)作られます。これがmigrationファイルです。
migrationを実行する
migrationファイルを使ってテーブルの追加・変更を行います。
bin/rails db:migrate
動作確認する
これでセットアップが完了したかと思います。おつかれさまでした。
必要に応じて bin/rails s
などを実行し、動作確認してみてください。
おまけ
各コンポーネントごとにmigrationファイルを生成することもできるようです(例えば conferenceコンポーネントであれば bin/rails decidim_conferences:install:migrations
と実行する)。が、おそらくdecidim:upgrade
でまとめて実行する方が確実かと思われます。
なお、Decidim用に追加されたコマンドを確認するには、以下のように実行すると一覧されます。
bin/rails -T decidim
Discussion