参考資料
1.公式サイト
2.作業手順参考
qiita.com
↑
今回もありがとうございます!
3.ER図作成ツール(ブラウザで使用できる)
◆使用説明
↑ ITかあさん、ありがとうございます!めっちゃ、便利です😊
◆ツール
目的
ActiveAdmin/レシピ管理/概要のER図を元に、
アプリをActiveAdminの機能だけで作る。
ER図
手順
1.modelを生成する。
# レシピ詳細model $ rails g model recipe_detail name:string deleted_at:datetime # 食材model $ rails g model ingredient name:string deleted_at:datetime # 調味料model $ rails g model seasoning name:string deleted_at:datetime # 単位model $ rails g model ingredient name:string deleted_at:datetime
2.マイグレーションファイルをDBに反映
$ rails db:migrate
3.アソシエーションの設定と外部キーの定義
レシピ詳細
app/models/recipe_detail.rb
class RecipeDetail < ApplicationRecord belongs_to :recipe belongs_to :ingredient belongs_to :seasoning belongs_to :unit # ↓論理削除↓ acts_as_paranoid end
<<未来の私に伝言>>
レシピ詳細は論理削除不要かも。必要なかったら、後日削除する。
食材
app/models/ingredient.rb
class Ingredient < ApplicationRecord belongs_to :recipe_detail # ↓論理削除↓ acts_as_paranoid end
調味料
app/models/seasoning.rb
class Seasoning < ApplicationRecord belongs_to :recipe_detail # ↓論理削除↓ acts_as_paranoid end
単位
app/models/unit.rb
class Unit < ApplicationRecord belongs_to :recipe_detail # ↓論理削除↓ acts_as_paranoid end
レシピ(前回作ったものも忘れずに)
app/models/recipe.rb
class Recipe < ApplicationRecord has_many :recipe_details # ↓論理削除↓ acts_as_paranoid end
4.前述までのmodelに対応する画面を作成する。
$ rails g active_admin:resource RecipeDetail $ rails g active_admin:resource Ingredient $ rails g active_admin:resource Seasoning $ rails g active_admin:resource Unit
5.ActiveAdmin.register
にpermit_params
を記述する。
※生成したActiveAdmin.register
にはコメントとしてpermit_params
の
使用説明+全カラムに対応する記述があるので、不要な部分を削除するだけで良い。
レシピ詳細
app/admin/recipe_details.rb
ActiveAdmin.register RecipeDetail do permit_params :quantity, :deleted_at, :recipe_id, :ingredient_id, :seasoning_id, :unit_id end
食材
app/admin/ingredients.rb
ActiveAdmin.register Ingredient do permit_params :name, :deleted_at end
調味料
app/admin/seasonings.rb
ActiveAdmin.register Seasoning do permit_params :name, :deleted_at end
単位
app/admin/units.rb
ActiveAdmin.register Unit do permit_params :name, :deleted_at end
5.サーバー起動
$ rails s
6.ブラウザでhttp://localhost:3000/admin
にアクセスして、ログインする。
おまけ
完成図
とりあえず、レシピ詳細画面だけ掲載します。
他は前回のrecipesと似た様なものなので。
↑
外部参照したところ(材料や調味料)は、自力でドロップボックス設置するのかと思いきや、
下図の通り、ActiveAdminが設置してくれている。
素晴らしい〜😂