Неправильно ли не реализовывать все действия REST в контроллере Rails?

StackOverflow https://stackoverflow.com/questions/1282399

Вопрос

Допустим, у меня есть SessionsController, который управляет входом пользователя в систему и выходом из системы, но единственные действия, которые мне действительно нужны, это новое (для отображения формы входа в систему), Создать (для аутентификации и входа в систему) и уничтожить для выхода пользователя из системы.

Есть ли какая-либо проблема, если у меня просто есть эти три действия в моем контроллере, или я должен реализовать их все, чтобы сделать его корректным RESTful?

И второй маленький вопрос.Некоторые люди говорят , что строительные леса это плохо, и что нужно писать код вручную, но я нахожу это довольно полезным и экономящим время.

Нормально ли использовать строительные леса, или это зло, которого следует избегать, и почему?

Это было полезно?

Решение

Определенно, нормально создавать только те действия RESTful, которые вы хотите поддерживать для этого ресурса.Вам не обязательно определять все 7 действий.На самом деле, большинство моих контроллеров не используют все 7 действий.

Нормально ли использовать строительные леса, или это зло, которого следует избегать, и почему?

Встроенные направляющие строительные леса в основном предназначены для того, чтобы помочь оторваться от земли при начале работ.Лично я не использую его для повседневной разработки по нескольким причинам.

  • он генерирует CSS и файл макета, когда я хочу использовать существующее приложение
  • он генерирует все действия контроллера (как я уже сказал, мне обычно не нужны все из них).
  • он создает формат XML для каждого действия, которое мне почти никогда не нужно
  • это не переводит форму в частичное состояние, когда мне нужны как "редактировать", так и "создавать" действия
  • Иногда я использую другую библиотеку тестирования (например, Shoulda или RSpec).

Тем не менее, я являюсь поклонником строительных лесов для ускорения разработки.Вот почему я создал генератор nifty_scaffold которым я пользуюсь почти все время.У него нет проблем, упомянутых выше.

Другие советы

Нет ничего плохого в том, чтобы выполнять только те действия, которые вам нужны.В Rails 2.3 вы можете еще более явно указывать свои маршруты.

map.resources :foo, :only => [:create, :destroy, :new]

Помните, что в REST на самом деле есть только 4 глагола GET, POST, ОБНОВЛЯТЬ ПОСТАВИТЬ и УДАЛИТЬ.Действия редактирования и создания в Rails — это обходные пути команды GET для отображения формы редактирования ресурса.Действие индекса — это GET для другого ресурса, оно просто связано с другими, потому что в контексте разработки приложений имеет смысл хранить его в том же файле.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top