Лучший способ справиться с этим - PullRequest
1 голос
/ 21 сентября 2010

У меня есть модель 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действияНо использование режима кажется неловким.Но, возможно, это действительно лучший способ.Это мой вопрос.

1 Ответ

0 голосов
/ 21 сентября 2010

Мне кажется, что check_in и check_out относятся к регистрации, поэтому я думаю, что вам нужен еще один ресурс для регистрации.check_in будет карта для создания и check_out будет карта для разрушения.

  resources :registrations

  match 'check_in', :to => "registrations#create", :as => "check_in"
  match 'check_out', :to => 'registrations#destroy', :as => "check_out"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...