В Ruby on Rails метод resources
— это мощный инструмент, упрощающий создание маршрутов RESTful для вашего приложения. Он обеспечивает краткий способ определения маршрутов для выполнения операций CRUD на определенном ресурсе. В этой статье мы рассмотрим различные методы, доступные с ключевым словом resources
, и приведем примеры кода для каждого.
- Index:
Метод index генерирует маршрут для отображения всех экземпляров ресурса.
# routes.rb
resources :articles
# articles_controller.rb
def index
@articles = Article.all
end
- Show:
Метод show генерирует маршрут для отображения определенного экземпляра ресурса.
# routes.rb
resources :articles
# articles_controller.rb
def show
@article = Article.find(params[:id])
end
- New и Create.
Методы new и create генерируют маршруты для отображения формы для создания нового ресурса и для обработки создания нового ресурса соответственно.
# routes.rb
resources :articles
# articles_controller.rb
def new
@article = Article.new
end
def create
@article = Article.new(article_params)
if @article.save
redirect_to @article
else
render 'new'
end
end
- Редактирование и обновление.
Методы редактирования и обновления генерируют маршруты для отображения формы для редактирования существующего ресурса и для обработки обновления существующего ресурса соответственно.
# routes.rb
resources :articles
# articles_controller.rb
def edit
@article = Article.find(params[:id])
end
def update
@article = Article.find(params[:id])
if @article.update(article_params)
redirect_to @article
else
render 'edit'
end
end
- Destroy:
Метод Destroy генерирует маршрут для удаления определенного экземпляра ресурса.
# routes.rb
resources :articles
# articles_controller.rb
def destroy
@article = Article.find(params[:id])
@article.destroy
redirect_to articles_path
end
Метод resources
в Ruby on Rails предоставляет удобный способ определения маршрутов для выполнения CRUD-операций над ресурсом. Используя различные методы, обсуждаемые в этой статье, вы можете легко создать надежное веб-приложение с минимальным количеством кода. Понимание этих методов позволит вам создавать эффективные и масштабируемые приложения Rails.