0
私のアプリはトレーニングのスケジューラです。RailsルーティングとHTTP動詞
クライアントは通常、特定の日の3つのタイムスロットのいずれかでワークアウトを行うので、朝、昼または夜のワークアウトをスケジュールするためのクイックアドイン機能を提供しています。
私はコードは動作していますが、私は正しい方法でやっているとは思いません。次のように
私のルートは次のとおりです。
私はこのような何かを経由して使用match 'workouts/quick_add/:date/:timeslot' => "workouts#quick_add",
:as => 'workout_quick_add'
:リクエストがGET経由で来るが、それがない場合、これは動作しますが、今
<%= link_to 'Morning Workout', workout_quick_add_path(:date => day, :timeslot => 'morning') %>
HTTPプロトコルのメソッド定義に基づいているようです。 POSTやPUTが正しいと思われますが、:via => :post
または:put
をルートに追加すると、ルーティングエラーが発生しています。
ここで正しいことは、この種の機能を実装する正しい方法は何ですか?
ええ、これを行う際にルーティングエラーが発生します。ルートは一致しません:action => quick_add、:controller =>トレーニング、:date => 2012-05-06、:timeslot => morning。これは、quick_add_workout_path(:date => day、:timeslot => 'morning')を使用している場合です。 – DVG
aha!私はコレクションルートを作って、 ':method =>:post'を使うようlink_toを更新しました。そして今はすべてが私が望むように動作します。ありがとう!あなたが 'コレクションのためにあなたの答えを編集するなら、私はupvoteして答えを受け入れるよ:) – DVG
ああ、もちろん、コレクション。あなたは、更新しないで、作成を扱っています。訂正とupvoteをありがとう。乾杯。 –