Существует несколько методов / шаблонов, которые обычно используются:
1) Когда ваш эрб создает страницу, вы можете предоставить параметр JS-скрипту, который является частью страницы.Параметр будет равен «голосовать_урл», это будет или голос / новый или голос / 123, в зависимости от того, должна ли использоваться операция создания или обновления.
2) Вы можете использовать «вызов процедуры» вместовызов отдыха.Процедура / действие будет «change_vote» с параметром «вверх», который будет либо истинным, либо ложным.В случае необходимости действие создаст запись голосования или иным образом изменит ее.
3) Как часть процесса создания основной записи, вы могли бы всегда создавать элемент voice_record.Таким образом, операции голосования всегда будут обновляться, так как поле voice_record всегда будет уже существовать.
Добавлено
Re: комментарий когда это вообще "приемлемо"«отойти от отдыха?»
Отдых - это философия дизайна.Это решает много проблем, но не подходит для всех ситуаций.Я думаю, что ваш оригинальный вопрос будет в порядке, но в конечном итоге это зависит от вас, и кто бы ни пересматривал вашу архитектуру.Поскольку для этой функции можно «согнуть» ваше приложение в API для отдыха, некоторые могут попросить вас сделать это, чтобы получить преимущество, не нарушая Restfulness.
Re: ваш пример в вашем комментариио дружеских отношениях:
Поскольку имеет смысл «создать дружеские отношения», было бы лучше, при прочих равных условиях, выражать API как остальной вызов «объект / создание дружбы».Именно для вашего примера создания дружбы был создан отдых.- Альтернатива старого стиля заключается в том, что каждый разработчик API должен был определить большой набор имен процедур.
Rest обеспечивает более последовательный, стандартный способ создания имен.
Обратите внимание, что процедура "change_vote" лучше всего определена как часть объекта голосования:,Я считаю, что существует «путь Rails» для URL для процедур отдыха, которые не соответствуют стандартным глаголам отдыха.