0
0

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】登録内容確認画面を作成していた際のエラーhidden_fieldの使い方

Posted at

こちらの記事を参考にしつつ、登録内容確認機能の実装をしていました。

##エラー内容

contacts/confirmに飛ぶと以下の画面になりました。
We're sorry, but something went wrong.
image.png

エラーコードは以下の通り。

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>

するとエラーが表示されず成功します。
スクリーンショット 2020-05-06 16.39.0939.png

元に戻して、次に下記の部分を消します。

<%= 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 %>
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?