Мое приложение - планировщик тренировок.Rails Маршрутизация и HTTP-глаголы
Клиент обычно выполняет тренировки на одном из трех временных интервалов в определенный день, поэтому я предоставляю функцию быстрого добавления, чтобы запланировать утреннюю, дневную или вечернюю тренировку.
У меня работает код, но я не думаю, что я делаю это правильно.
Мой маршрут выглядит следующим образом:
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
к маршруту, все это будет искажено ошибкой маршрутизации.
Что здесь правильно, и каков правильный способ реализации такого рода функций?
Да, я получаю ошибки при маршрутизации при выполнении этого. Нет совпадений маршрута: action => quick_add,: controller => workouts,: date => 2012-05-06,: timeslot => утро. Это при использовании quick_add_workout_path (: date => day,: timeslot => 'morning') – DVG
aha! Я сделал маршрут сбора и обновил link_to, чтобы использовать ': method =>: post', и теперь все работает так, как я этого хотел. Благодаря!. Если вы отредактируете свой ответ для 'collection do', я отвечу и приму ваш ответ :) – DVG
Ах, коллекция, конечно. Вы имеете дело с созданием, а не с обновлением. Спасибо за исправление и upvote. Приветствия. –