前提・実現したいこと
ご覧いただきありがとうございます。
現在、スクールの比較サイトをSPA(Rails+React)で作成している者です。
以下のアクションはスクールの情報を返す処理で「スクール情報,コース情報」を別々に取得してJSONで返しています。動作としては正常に動いています。
やりたいことは、スクール情報もコース情報もまとめて一括で取得してJSONで返すようにリファクタリングすることです。
Bootcampモデルに紐づいたCourseモデル(has_many)のデータを一括で取得するようなメソッドがあればベストなのですが、自分には見つけられませんでした。
なので、もしそのようなメソッドもしくは他の方法をご存知の方がいればご教授いただきたいです。
以上、お手数ですがよろしくお願い致します。
Ruby
1 # bootcamps_controllers.rb 2 3 def show 4 # スクール情報取得 5 bootcamp = Bootcamp.find_by_id(params[:bootcamp_id]) 6 # コース一覧情報取得 7 courses = bootcamp.courses 8 9 if bootcamp 10 render json: { bootcamp: bootcamp, courses: courses } 11 else 12 render json: { code: "NOT_FOUND", message: Utils.message(Messages::Error::NOT_FOUND, words = { s0: "スクール" }) }, status: 404 13 end 14 end
一括で取得したいオブジェクトとしては以下のような感じです。
// JSONデータ { bootcamp: { name: "テストスクール", url: "https://~~~", courses: [ { name: "コースA", cost: "3000円", }, { name: "コースB", cost: "6000円", }, ... ] } }
以下モデル
Ruby
1# モデル: bootcamp.rb 2class Bootcamp < ApplicationRecord 3 # 1対多 4 has_many :courses, dependent: :destroy 5end 6
Ruby
1# モデル: course.rb 2class Course < ApplicationRecord 3 belongs_to :bootcamp 4end 5 6
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。