2014-09-16 2 views
1

Я немного смущен, теперь это должно работать. В документации сказано: http://grails.org/doc/latest/guide/single.html#extendingRestfulControllerДействия и ресурсы Grails RestfulController

9.1.5.1 Расширение RestfulController суперкласс

Самый простой способ, чтобы начать делать так, чтобы создать новый контроллер для вашего ресурса, который расширяет grails.rest.RestfulController super класс. Например:

class BookController extends RestfulController { static responseFormats = ['json', 'xml'] BookController() { super(Book) } }

Чтобы настроить какой-либо логики, вы можете просто отменить соответствующее действие. В следующей таблице приведены имена названий действий и URIs они отображаются на:

HTTP Метод URI Действие контроллера
GET/индекс книги
GET/книги/Создавать
POST/книги сохранить
GET/книги/$ {ID} показать
GET/книги/$ {ID}/редактировать редактировать
PUT/книги/$ {ID} обновить
DELETE/книги/$ {ID} удалить

Я создал BookCon Троллингист, а также связанный с ним класс домена Book, но я заметил, что я не могу доступ (Bootstrap добавлена ​​книги) книги через документированную URI:
/книги/$ {ID}

Я могу получить к нему доступ используя имя домена, не множественное число и действие:
/книга/шоу/1

Когда я пытаюсь добавить @Resource (адрес URI = «/ книги») для класса домена книги, которая не помогает или. Неужели грайлы больше не поддерживают его? Нужно ли мне использовать глаголы действия?

Я использую грабли 2.4.2

Спасибо.

+1

ли вы настроите ' "/ книги"(ресурсы: "книга")' в вашем 'UrlMappings.groovy'? –

+0

Вы правы, добавив, что в нем все работает. Спасибо. Кажется, что если я использую @Resource в домене, он работает по своему желанию. Если я создаю контроллер, который расширяет RestfulController, сопоставления переопределяются с помощью путей баз данных действий. Документация очень вводит в заблуждение. – Julian

ответ

3

При продлении RestfulController вы несете ответственность за настройку сопоставления ресурсов в пределах UrlMappings.groovy. В отличие от аннотации @Resource в вашем классе домена.

Например:

// UrlMappings.groovy 
"/books"(resources:"book") 
+1

Спасибо. Было бы неплохо, если бы в документации это было сказано. Они все мы здесь читаем; был неявным. – Julian

+0

Мы все были сработаны по умолчанию «/ $ controller/$ action?/$ Id? (. $ Format)?» _ UrlMapping, думая, что что-то другое регистрирует это явно. – Julian

+0

Все в порядке.Учитывая все доступные варианты, некоторым людям сложно понять, что означает реализация каждого подхода. Если я получу время сегодня, я увижу, как разрисовать документацию или, по крайней мере, создать JIRA. Если ты не побьешь меня. (: –

Смежные вопросы