こちらの記事を参考にしつつ、登録内容確認機能の実装をしていました。
##エラー内容
contacts/confirmに飛ぶと以下の画面になりました。
We're sorry, but something went wrong.
エラーコードは以下の通り。
views/contacts/confirm.html.erb
<h1>こちらの内容でよろしいですか?</h1>
<p> email: <%= @contact.email %></p>
<p> message: <%= @contact.message %></p>
<%= form_for :contact, url: new_contacts_path do |f| %>
<div class="form-group">
<%= f.hidden_field :email %>
</div>
<div class="form-group">
<%= f.hidden_field :message %>
</div>
<%= f.submit '入力画面に戻る' %>
<% end %>
<%= form_for :contact, url: contacts_path do |f| %>
<div class="form-group">
<%= f.hidden_field :email, 'メールアドレス' %> %>
</div>
<div class="form-group">
<%= f.hidden_field :message, 'お問い合わせ内容' %>
</div>
<%= f.submit '送信する' %>
<% end %>
画像の通りエラー内容が表示されないので一つずつコードを消して試してみました。
まず、下記の部分を消します。
<p> email: <%= @contact.email %></p>
<p> message: <%= @contact.message %></p>
元に戻して、次に下記の部分を消します。
<%= form_for :contact, url: new_contacts_path do |f| %>
<div class="form-group">
<%= f.hidden_field :email %>
</div>
<div class="form-group">
<%= f.hidden_field :message %>
</div>
<%= f.submit '入力画面に戻る' %>
<% end %>
するとエラーWe're sorry, but something went wrong.が表示されました。
元に戻して、次に下記の部分を消します。
<%= form_for :contact, url: contacts_path do |f| %>
<div class="form-group">
<%= f.hidden_field :email, 'メールアドレス' %> %>
</div>
<div class="form-group">
<%= f.hidden_field :message, 'お問い合わせ内容' %>
</div>
<%= f.submit '送信する' %>
<% end %>
エラーWe're sorry, but something went wrong.が表示されませんでした。
結果これが怪しいということになりました。
<%= form_for :contact, url: contacts_path do |f| %>
<div class="form-group">
<%= f.hidden_field :email, 'メールアドレス' %> %>
</div>
<div class="form-group">
<%= f.hidden_field :message, 'お問い合わせ内容' %>
</div>
<%= f.submit '送信する' %>
<% end %>
##原因
f.hidden_fieldに第2引数として要素を指定することはできないから。
したがって下記のようにしたところ動きました。
<%= form_for :contact, url: contacts_path do |f| %>
<div class="form-group">
<%= f.hidden_field :email %>
</div>
<div class="form-group">
<%= f.hidden_field :message %>
</div>
<%= f.submit '送信する' %>
<% end %>