Techioz Blog

理学療法士向けのこの Rails アプリのモデル関係を定義するにはどうすればよいですか?

概要

私は初めて実際の Rails アプリを構築しようとしている Ruby on Rails 初心者です。

考え方は次のとおりです。

アプリには演習の概要が表示されます。各演習には、カテゴリ:文字列、ボディパート:文字列、説明:テキスト、および画像があります (これは Paperclip gem を使用して追加されます)。それから患者もいます。各患者には名前:文字列と電子メール:文字列があります。最後に運動計画があります。各演習プランには name:string があり、演習の概要からの演習が含まれます。

アプリのユーザー (理学療法士) として、概要からエクササイズを選択し、PDF の形式で患者に電子メールで送信できます (これは Prawn gem を使用して実装されます)。エクササイズを選択するとき、ユーザー (理学療法士) はエクササイズごとに「繰り返し」または「期間」を入力できる必要があります。これを演習計画に追加し、PDF に印刷する必要があります。

ActiveRecord でモデルの関連付けを最もよく定義するにはどうすればよいですか?

解決策

私なら次のようなことから始めます。

class Exercise < ActiveRecord::Base
  has_many :exercise_plans
end

class Patient < ActiveRecord::Base
  has_many :exercise_plans # or perhaps just `has_one`?
end

class ExercisePlan < ActiveRecord::Base
  belongs_to :patient
  has_and_belongs_to_many :exercises
end

データベースに必要なテーブル: エクササイズ、患者、エクササイズプラン、エクササイズプラン_エクササイズ。最後のものは計画と演習の間の関連付けを保持するだけであり、exercise_plan_id と Exercise_id への参照のみが必要です。