Что такое "ресурс" в Rails?
глупый вопрос, но у меня есть некоторая затяжная путаница в том, что именно "ресурс" находится в Rails. Этот термин используется везде, но я получаю забавное чувство, что он может использоваться довольно свободно. На него ссылаются в модели, контроллере и, буквально, в routes.rb.
это конкретный маршрут? Например, map.resources отображает 7 спокойных "ресурсов". Так что пример один ресурс был бы вызовом, скажем,index действие определенного класса контроллер?!?
это ссылка на всю страницу/объект будет получен? или, может быть, более узко, таблица базы данных? или возвращаемый ряд?
Это что-то другое?
в любом случае, надеюсь, кто-то может задать мне прямо...
5 ответов:
любой объект, который вы хотите, чтобы пользователи могли получить доступ через URI и выполнить CRUD (или некоторые его подмножества) операции можно рассматривать как ресурс. В смысле рельсов, это вообще таблица базы данных, которая представлена моделью и действует через контроллер.
например, у вас может быть
Userресурс (сusersтаблицы в вашей БД). Это представлено в видеUserмодель, сопоставляются сusers_controllerСmap.resources :users(который затем генерирует маршруты, такие как/users(коллекция пользовательских ресурсов) и/users/1(определенный пользовательский ресурс).вы действуете на эти ресурсы, используя соответствующий метод HTTP при вызове этих ресурсов.
POSTв коллекцию ресурсов (/users) создает новую запись;GETполучает список ресурсов (/users) или конкретного пользователя (/users/1).PUTобновление конкретного пользователя (/users/1/), иDELETEуничтожает этого пользователя. URL-адреса одинаковы, но результат (и действие контроллера) может отличаться в зависимости от команды HTTP. Идея, однако, в том, что/users/1всегда означает "я взаимодействую с пользователем, который имеет ID #1", независимо от действия.
здесь хорошая статья обсуждая, как большинство разработчиков думают, что" ресурс " синонимичен с таблицей базы данных, аргумент, я думаю, заключается в том, что сопоставление с ресурсом сопоставляет контроллер с этой таблицей базы данных (или, с ActiveResource, с другим url-адресом REST).
в принципе, я думаю, что "ресурс" - это "сохраненные данные."
map.resourcesкарты 7 RESTful действия к определенному набору сохраненных данных.но я не думал об этом слишком много в глубине души. Хороший вопрос!
откройте папку модели, это подсказка о том, какие ресурсы у вас есть! пример: пользователи, фотографии, комментарии...
Я думаю, что они, вероятно, имеют в виду это в общем веб-смысле, т. е. Ресурс (Web):
референт любого единого идентификатора ресурса
Я не думаю, что это имеет какое-либо отношение к таблицам базы данных.
многие люди здесь говорят, что ресурсы ссылаются на таблицы базы данных у вас есть. Это может быть правдой иногда, но не обязательно всегда. Я мог бы привести вам много примеров, когда у вас нет соответствующей таблицы в базе данных для конкретного ресурса. Следовательно, связывать его с таблицами довольно неправильно.
Я бы определил ресурс как маршрут, который сопоставляется с соответствующими запросами. Поэтому вместо объявления отдельных маршрутов для действий, которые вы хотите сделать, вы можете просто объявите их с помощью находчивого route.In рельсы, находчивый маршрут обеспечивает сопоставление между
HTTP requestsиURLstocontroller actions.так сказать, можно определить
resources :usersнаconfig/routes.rb.
теперь вы можете использовать ряд помощников для контроллеров в вашем приложении, какedit_user_pathвозвращаетusers/edit.
Comments