3
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 1 year has passed since last update.

turbo_methodについて学ぶ

Posted at

はじめに

Turboについて簡単に概要だけ学びましたが、実際にコードの中で使用するとなると話はまた別で、非常に難しいと感じてしまいました。
今回はturbo_methodについて学ぶ機会があったのでアウトプットもかねて記事にまとめてみたいと思います

そもそもTurboとは

  • Turboとは、RailsのHotwire1というセットアップの一部で、ページの遷移を高速化するための技術
  • 主に、ページ全体をリロードすることなく、部分的にコンテンツを更新できるようにするためのもの
  • これにより、ユーザー体験が向上し、アプリケーションがよりスムーズに動作する
  • ユーザーがフォームを送信したときや、ボタンをクリックしてデータを更新したいときに使用される

turbo_methodについて

Turboを使用してHTTPリクエスト2を送信する際に、使いたいHTTPメソッドを指定するための機能で、Railsのビューで使うと、特定のアクションを実行するために便利

詳細

turbo_methodは、Railsのフォームやリンクに使われることが多く、通常のリンクやフォームでは、GETPOSTメソッドが使われるけど、turbo_methodを使うことで、DELETEPATCHなどの他のHTTPメソッドも簡単に使えるようになる

簡単な例

例えば、Railsでリソースを削除するためのリンクを作る場合、次のように書くことができる

<%= link_to 'Delete', resource_path(@resource), method: :delete, data: { turbo_method: :delete } %>

この例では、リソースを削除するためのリンクを作成していて、method: :deleteturbo_methodに該当する部分。これにより、リンクをクリックすると、Turboが自動的にDELETEリクエストを送信してくれる

Turboを使用しない場合のコード

Turboを使用しない場合、次のように書くことができるぞ。

<%= link_to 'Delete', resource_path(@resource), method: :post %>

このコードでは、method: :deleteを使わずにPOSTメソッドを指定している。この場合、リソースを削除するための正しいHTTPメソッドを使っていないため、サーバー側で適切な処理が行われない可能性がある!!

使用しない場合のデメリット

  • 意図しない動作POSTリクエストが送信されても、サーバー側でDELETEリクエストとして処理されない場合、リソースが削除されないか、エラーになることがある。
  • セキュリティのリスクPOSTリクエストは、通常、データを作成するために使われるため、削除操作が意図しない方法で行われる可能性がある。
  • 可読性の低下: コードを見たときに、どの操作を意図しているのかが不明瞭になるため、他の開発者が理解しにくくなる。

まとめ

  • turbo_methodは、HTTPリクエストのメソッドを指定するための機能。
  • 詰め合わせというよりは、特定のメソッド(GET、POST、DELETEなど)を指定するためのオプション
  1. Hotwire:Railsの開発者が提唱した新しいアプローチで、Webアプリケーションをよりインタラクティブにするための技術群だ。Hotwireには主に以下の3つのコンポーネントが含まれている①Turbo: ページ遷移を高速化するための技術。②Stimulus: JavaScriptを使って、HTMLの動的な振る舞いを簡単に追加するためのフレームワーク。③Strada: モバイルアプリケーションとWebアプリケーションをつなぐための技術。

  2. HTTPリクエスト:クライアント(通常はブラウザ)がサーバーに対して送信する要求のこと。これにより、サーバーはデータを取得したり、更新したり、削除したりする操作を行うことができる。リクエストには、さまざまなメソッド(GET、POST、PUT、DELETEなど)がある

3
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
3
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?