У меня есть модель Scouts, которая требует двух действий в дополнение к стандартным действиям REST, check_in и check_out.Поэтому мой маршрут выглядит следующим образом:
resources :scouts do
member do
get 'check_in'
get 'check_out'
end
end
Но мне нужно отобразить show.html для пользователя со ссылкой на check_in Scout или check_out scout.Чтобы использовать то же представление show.html и сохранить только одно действие show в ScoutsController, я передаю ?mode=check_in
или ?mode=check_out
, добавленный к URL, чтобы обозначить, что это не обычное действие show, и поэтому отображает «Check In» и «Ссылки "Извлечь".
Я думал о создании ресурса check_in
и check_out
, но, похоже, это не соответствует модели REST, поскольку регистрация входа / выхода является действием, а не ресурсом.
Есть ли лучший способ справиться с этим RESTful?
Обновление : режим приходит от разных пользователей с разными повестками дня (то есть рабочими процессами).Одному пользователю может потребоваться показать и отредактировать данные разведчика, в то время как другой будет выполнять только действия check_in
.
Но пользователю, выполняющему действия check_in
, может потребоваться редактирование.Например, пользователь, выполняющий действия check_in
, может обнаружить ошибку в данных разведчика, исправить ее путем редактирования и вернуться к своей активности check_in
.Прохождение mode
позволяет мне определить повестку дня пользователей.Кроме того, добавление mode
позволяет мне использовать только одно представление show / edit / etc и просто отображать соответствующие ссылки на его основе.
Я мог бы включить mode в хэш сессии.В любом случае, тот же результат.
Преимущество заключается в очень простом пользовательском интерфейсе (для очень простых пользователей).
Мне кажется, что Скаут является ресурсом, а check_in
и check_out
действияНо использование режима кажется неловким.Но, возможно, это действительно лучший способ.Это мой вопрос.