который возвращается

вопрос, но у меня есть некоторая запутанная путаница в том, что такое «ресурс» в Rails Термин используется повсеместно, но у меня возникает странное ощущение, что его можно использовать довольно свободно. На него ссылаются в модели, контроллере и, буквально, вroutes.rb.

Это конкретный маршрут? Например,map.resources сопоставляет 7 RESTful "ресурсов". Итак, примеродин ресурс будет призыв, скажем, кindex действие контроллера определенного класса?!?

Это ссылка на всю извлекаемую страницу / объект? или, может быть, более узко, таблица базы данных? или строка возвращается?

Это что-то еще?

Во всяком случае, надеюсь, кто-то может исправить меня ...

Ответы на вопрос(6)

Ресурс (Интернет):

референт любого унифицированного идентификатора ресурса

Я не думаю, что это имеет какое-либо отношение к таблицам базы данных.

хорошая статья Обсуждая, как большинство разработчиков считают, что «Ресурс» является синонимом таблицы базы данных, я полагаю, что аргумент в том, что сопоставление с ресурсом отображает контроллер в эту таблицу базы данных (или, с ActiveResource, в другой URL-адрес REST).

По сути, я думаю, что «ресурс» - это «постоянные данные».map.resources карты 7 RESTfulдействия к определенному набору постоянных данных.

Но я не думал об этом слишком глубоко. Хороший вопрос!

Решение Вопроса

к которому вы хотите, чтобы пользователи могли обращаться через URI и выполнятьCRUD (или некоторое их подмножество) операции над можно рассматривать как ресурс. В смысле Rails этов общем таблица базы данных, представленная моделью и действующая через контроллер.

Например, вы можете иметь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», независимо от действия.

 Tyler Rick16 янв. 2019 г., 18:35
Конечно, вы можете использоватьresources определить маршруты для ресурсов, которых нет в базе данных! Если вам не нужны все действия контроллера, на которые он направляет по умолчанию, просто используйтеonly: а такжеexcept: сказать, какие из них вы на самом деле хотите. Например,resources :things, only: [:index, :show]...
 Jonah12 янв. 2018 г., 04:44
Если у меня есть ресурс, который не использует модель базы данных (он использует API отдельного сервиса для постоянства), имеет ли смысл использовать ярлык «ресурс» rails или мне лучше просто определить маршруты вручную?

это намек на то, какие ресурсы у вас есть! пример: пользователи, картинки, комментарии ...

https://api.rubyonrails.org/v5.2.1/classes/ActionDispatch/Routing/Mapper/Resources.html

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

ресурсы: фотографии

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

Я бы определил ресурс как маршрут, который отображается на связанные запросы. Таким образом, вместо того, чтобы объявлять отдельные маршруты для действий, которые вы хотите сделать, вы можете просто объявить их с помощью находчивого маршрута. В Rails находчивый маршрут обеспечивает отображение междуHTTP requests а такжеURLs вcontroller actions.

Скажи, что вы определяетеresources :users вconfig/routes.rb.
Теперь вы можете использовать несколько помощников для контроллеров в вашем приложении, таких какedit_user_path который возвращаетсяusers/edit .

Ваш ответ на вопрос