【rails】「UPDATE」editアクション

※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

CRUD(クラッド)とは

Create・Read・Update・Delete のこと

Webアプリケーションの基本的な機能をすべて備えているものを「CRUDアプリ」という

Update

「Update」(PUTリクエスト)のアクションを編集する

  • データを変更する

※ プットのことをパッチと呼ぶ人もいる 違いは特にない

今回、実装したいこと

editアクション:該当ページの編集ができるようにする


htmlに編集ボタンを作る

今回はドロップボタンで表示されるようにする

<div class="article_detail_actions">
  <div class="dropdown">
    <%= image_tag 'actions.svg', class: 'dropbtn' %>
      <div class="dropdown-content mini">
        <a href="#">編集する</a>
      </div>
  </div>
</div>

画像の取り込み方法

  1. warp画面で「$ open .」でフォルダ表示させる
  2. 該当の画像ファイルを中にいれる

編集ページを作成する

:editのリンクを作る

config/routes.rbにコードを追加する

resources :articles, only: [:show, :new, :create, :edit]

editは「編集する」という意味(GETリクエスト)

  • editは、今保存されている記事の編集をする
  • edit_article_path は /articles/:id/edit のこと
  • idが渡されてきている

Article.find.params[:id]

記事ごとの編集ページが表示できるようにする

app/controllers/article.controller.rbに以下を定義する

def edit
  @article = Article.find(params[:id])
end
  1. 「編集」ボタンを押すと、edit_article_pathが実行される
  2. edit_article_path は url「/articles/:id/edit」のこと
  3. editする記事の:idがurlに渡されている
  4. articles#editに進む
  5. params[:id]で、urlの:idを受け取ることができる
  6. params[:id]で受け取った:idの記事をArticle.findにより、記事全体から探す
  7. @articleに入れることで、edit画面に該当:idの記事がviewに初期表示される

記事詳細ページのリンクを編集する

edit_article_pathに記事の:idを渡さなければいけない

<%= link_to '編集する', edit_article_path(@article) %>

edit_article_path(@article)と書く


edit.html.erb

記事の編集(updateアクション)はこちら

#DAY13