取り組むべき問題があり、これを機能させるための最も適切な方法が何であるかわかりません。ここで開始する背景は次のとおりです。
プロシージャとアポイントメントで作業している 2 つのモデルがあります。Appointments モデルは Procedures モデルに属し、Procedures モデルには多くの予定があります。
手順モデルには、2 つの重要な列ではなく、2 つの重要なポイントがあります。
attr_accessible :visits, :occurence
訪問数は、予定をスケジュールする特定の回数です。発生は、訪問の頻度です。例はvisits: "5", occurence: "weekly"
visits: "x"
したがって、フォームを送信するときに、両方を見occurence: ["weekly", "biweekly", "monthly"]
てからifまたはswitchを作成するメソッドを書きたいと思います.phpはまだRubyバージョンを調べていますが、これを書くエレガントな方法があると思います.上。
私の現在の作成方法は次のようになります。
def create
@appointment = Appointment.new(params[:appointment])
set_variables
if @appointment.save
flash[:success] = "Appointment scheduled!"
redirect_to patient_path(@current_patient)
else
redirect_to patient_path(@current_patient)
flash[:error] = "Appointment Date and Time cannot be blank, please try again."
end
end
a) 次のようなものに基づいて識別occurence: ["weekly", "biweekly", "monthly"]
してから処理するための最良の方法は何でしょうか。visits: "x"
if @appointment.occurence == "weekly"
(x-1).times do |n|
submit same params but change within params appointment_date: = ((@appointment.appointment_date) + (n+1).week.to_formatted_s(:db)
@appointment.save
end
end
...などなど(n+1).month
、毎月の発生(n+2).day
と隔週の発生に使用します。
事前に感謝します。これで問題が解決することを願っています。visits:
注意すべき点が 1 つあります。データベースに保存する必要がありますか? 私はそうではないと思いますoccurence:
が、models_controller 作成関数を実行するときにそれらが使用されることを確認したいと思います。