Как расширять CRUD?

63c63ae5aa135422437519.png

I. Вот, допустим, resources :photos дает нам набор роутов. Я вижу среди них пары ( GET и <ACTION> ) на создание и редактирование. Но для:
DELETE	/photos/:id	photos#destroy	delete a specific photo

соответствующего GET нет.

Во всех гайдах предполагается, что удаление будет производиться через confirm, но что если мне нужно модальное окно, которое рендерится по роуту? Я вижу несколько вариантов:

1. Новый роут. Каким его сделать?
resources :photos do
  member do
    get 'remove'
  end
end

Так? А если в этой модалке в textarea складывается несколько photos_ids для удаления?

2. Добавить GET для destroy. В методе проверять какой метод и если GET, то отдавать модалку, если DELETE, то удалять.

3. Сделать какой-то общий метод для всех модалок и по параметрам отдавать?

II. Если у меня есть несколько кнопок, которые изменяют данные объекта, то все они должны вести на update через edit и по параметрах выбирать что мне конкретно нужно? Или на update, но через несколько экшенов? Или вообще на каждое изменение должна быть своя пара edit&update? Например, кнопки такие - "изменить рамку фото", "изменить фон фото", "изменить размер фото".

III. Если на моей странице есть кнопка, которая должна редактировать другую сущность, не связанную с текущим контроллером, но на основе текущих данных, то я должен использовать экшены контролера этой сущности или добавлять экшены в текущий контроллер? Например, есть сущность "Альбом", на текущей странице "Все фото" есть кнопка "Добавить в альбом выделенные фото".
  • Вопрос задан
  • 177 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы