1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】 button_toメソッドを初めて活用してみた

Posted at

#はじめに
Railsでオリジナルアプリを作成しています。indexアクションで表示されるページから直接updateアクションを実行したく、button_toメソッドを活用しました。

※今まで作ったアプリは、ツイートなどの登録一覧情報があるindexから詳細(show)ページに遷移します。そこから編集ページ(edit)に遷移して、情報を更新(update)します。このshow、editアクションを割愛して直接updateアクションを行いました。

開発環境
ruby 2.6.5
Rails 6.0.3.4

#目次
1.button_toの使い方
2.link_toとの違い

#1.button_toの使い方
よく使うlink_toと似ていて、リンクではなくボタンを作成できます。中身はシンプルでボタン名、パスやアクションそしてオプションで構成されます。デフォルトのHTTPメソッドはpostです。

○○.html.erb
<%= button_to "ボタン名", { パス or コントローラー名とアクション名 }, { オプション } %>

今回作成したのは下記の通り。suggestion_path(suggestion.id)はupdateのルーティングで設定したパスです。updateアクションのHTTPメソッドはpatchなので、デフォルトのpostから変える必要あり。

index.html.erb
<%= button_to "掃除完了", suggestion_path(suggestion.id), method: :patch, class: "register-blue-btn" %>

image.png

#2.link_toとの違い
link_toのデフォルトHTTPメソッドはgetです。またlink_toはaタグを使ったリンクの生成に対し、button_toはフォームを生成します。

参考ページ
【Rails】button_toの使い方をどこよりもわかりやすく解説!
以上

所感
まだこの辺りきちんと理解できてないけど、アクションを実行したいならbutton_toなのかな?コントローラーも指定できることから、他コントローラーのアクションも実行できるようです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?