Railsにおけるhidden_fieldの使い方を現役エンジニアが解説【初心者向け】

初心者向けにRailsのhidden_fieldの使い方について現役エンジニアが解説しています。hidden_fieldは、hidden属性を付与したinputタグを生成できるヘルパーメソッドです。Railsでは書く場所に応じてhidden_fieldとhidden_field_tagの2種類があります。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Railsにおけるhidden_fieldの使い方について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事をみてみましょう。

 

なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。

 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Railsにおけるhidden_fieldの使い方について詳しく説明していくね!

大石ゆかり

お願いします!

 

hidden_fieldとは何か?

hidden_fieldとは、hidden属性を付与したinputタグを生成できる補助メソッドです。

主な用途は、ユーザーに見せる必要はないシステム内の処理をするのに必要な画面情報(ID値や商品名など)を画面に保持しておき、次の処理のときに渡すためのパラメータなどを格納しておくといった役割です。

 

hidden_fieldの書き方

Railsでhidden_fieldを作成するには2つの方法があります。

  • hidden_field
  • hidden_field_tag

でhidden_fieldを作成することが可能です。

2種類の作り方がある理由は、hidden_fieldを作成する場所によって使い分けをする必要があるためです。

hidden_fieldは、form_forやform_withタグなどでインスタンスをviewに渡しているときに使用できます。

 

コードとしては、

<%= f.hidden_field :id, :value => date.id %>

となり第一引数にシンボル(パラメータ名)、第二引数にvalueとして受け渡したい値を設定します。

 

hidden_field_tagは独立した利用ができ、シンプルにhidden属性のタグとして使用可能です。

以下のような使い方ができます。

<%= hidden_field_tag :name, @user.name %>

nameというパラメータを作成し、そこに@user.nameを格納します。

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

hidden_fieldとform_forタグを組み合わせたコード例

以下、簡単なコードです。

<%= form_for(@user, url: user_path(params[:id])) do |f| %>

<%= f.hidden_field :email, value: f.object.email %>

<%= f.label :password %>
<%= f.password_field :password, class: 'form-control' %>

<%= f.label :password_confirmation, "Confirmation" %>
<%= f.password_field :password_confirmation, class: 'form-control' %>

<%= f.submit "Update password", class: "btn btn-primary" %>
<% end %>

<%= hidden_field_tag :cellphone, @user.cellphone %>

このコードでは、ユーザーの編集画面で電話番号とEメールをhidden項目に格納しています。

 

執筆してくれたメンター

水野大輝(みずのたいき)

2014年より、某物流会社のシステム開発担当として入社。

未経験ながら、社内システム保守~新規受注システム開発まで携わり、JavaScript Ruby on Rails PostgreSQLなどの経験を積む。

現在も、開発案件に携わりながら、日々勉強中。

 

大石ゆかり

Railsにおけるhidden_fieldの使い方がよくわかりました!

田島悠介

今後、分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは、初心者でも最短4週間でRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているのでぜひ参加してみてください。