##【ゴール】
hidden_fieldを使って情報を送る
##【メリット】
■ paramaterの理解度向上
■ hidden_fieldの使い方理解
■ MVCの理解度向上
##【開発環境】
■ Mac OS catalina
■ Ruby on Rails (5.2.4.2)
■ Virtual Box:6.1
■ Vagrant: 2.2.7
##【実装】
####アプリケーション作成
※「scaffold」で一気に作成
$ rails new hidden_lesson
$ rails g scaffold Item name:string text:text price:integer amount:integer
$ rails db:migrate
##アプリケーション調整
※ルートを追記
※homeにitemsのindexページが来るように
※postメソッドで確認画面へのルートを作成
root 'items#index'
post 'items/confirm' => 'items#confirm'
※views/itemsにconfirm.html.erbを作成
※items/_form.html.erbを編集
※hidden_fieldでUserには見えないようにページで情報を保持します!!!
<h3>Confirm page</h3>
<%= form_with model:@item do |form| %>
<div class="field">
<%= form.label :name %>
<%= @item.name %>
<%= form.hidden_field :name %>
</div>
<div class="field">
<%= form.label :text %>
<%= @item.text %>
<%= form.hidden_field :text %>
</div>
<div class="field">
<%= form.label :price %>
<%= @item.price %>
<%= form.hidden_field :price %>
</div>
<div class="field">
<%= form.label :amount %>
<%= @item.amount %>
<%= form.hidden_field :amount %>
</div>
<div class="actions">
<%= form.submit %>
</div>
<% end %>
<%= form_with(model: item, local: true) do |form| %> #これを↓に変更
<%= form_with(model: item, local: true, url: items_confirm_path) do |form| %>
以上です。商品詳細画面遷移前に確認画面が挟まれているはずです。
##【合わせて読みたい】
■form_withに関して
https://qiita.com/tanaka-yu3/items/50f54f5d4f4b8dfe19f3
■local: trueに関して
https://qiita.com/hayulu/items/5bf26656d7433d406ede
■確認画面作成に関して
https://qiita.com/tomoharutt/items/7959d28764912c64562f
■formの引数が2つの場合
https://qiita.com/tanaka-yu3/items/94d2b9fccc9577756127