0

私のアプリはワークアウト スケジューラです。

クライアントは通常、特定の日に 3 つのタイムスロットのいずれかでワークアウトを行うため、朝、正午、または夜のワークアウトをスケジュールするためのクイック追加機能を提供しています。

コードは機能していますが、正しい方法で実行しているとは思いません。

私のルートは次のとおりです。

match 'workouts/quick_add/:date/:timeslot' => "workouts#quick_add",
  :as => 'workout_quick_add'

私はこのようなものを介して使用します:

<%= link_to 'Morning Workout', workout_quick_add_path(:date => day, :timeslot => 'morning') %>

これは、リクエストが GET 経由で着信した場合に機能しますが、HTTP プロトコルのメソッド定義に基づいて正しくないようです。POST または PUT が正しいように思えますが、ルートに:via => :postまたはを追加:putすると、ルーティング エラーが発生して全体がバグります。

ここで何が正しいのか、この種の関数を実装する正しい方法は何ですか?

4

1 に答える 1

2

どうですか:

resources :workouts do
  collection do
    post :quick_add
  end
end

パラメータで日付とタイムスロットを渡します。

于 2012-05-07T18:27:15.167 に答える