teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

誤字の修正

2020/08/11 05:57

投稿

ty_tech
ty_tech

スコア1

title CHANGED
File without changes
body CHANGED
@@ -115,11 +115,10 @@
115
115
  def contact_params
116
116
  params.permit(:name, :email, :subject, :message)
117
117
  end
118
- ````
118
+ ```
119
+
119
120
  に変えてみるとエラーはでないものの、create画面が表示されずに、
120
121
  `入力に不備があります。`と表示される状態です。
121
122
 
122
123
 
123
- ②リダイレクト先を`redirect_to contact_mails_path(@contact)`に変更
124
-
125
124
  どこが原因なのかでしょうか。。。

1

ActionController::ParameterMissing in ContactMailsController#create エラーをまず解決したいため

2020/08/11 05:57

投稿

ty_tech
ty_tech

スコア1

title CHANGED
@@ -1,1 +1,1 @@
1
- createで完了画面を表示させたい
1
+ ActionController::ParameterMissing in ContactMailsController#create エラーが
body CHANGED
@@ -1,16 +1,12 @@
1
1
  ### 実現させたいこと
2
- Rails wayにたがってcreateで完了画面表示させたい
2
+ ActionController::ParameterMissing in ContactMailsController#createエラーを解決して`create`画面表示させたい
3
3
 
4
- ### 現在の状況
5
- Action Mailerを使ってお問合わせ画面を作成す。
4
+ プログラミング初心者で、基礎的な部分なのかと思お恥ずかしいのでが、ご教示頂きたいです
6
- new.html.erbでnewでお問い合わせ内容を送信しています。
7
- show.html.erbで完了画面を表示させています。
8
5
 
9
- Rails wayにしたがってcreateで完了画面を表示させたいと思っています。
10
-
11
6
  【routes.rb】
12
7
  ```
13
- resources :contact_mails
8
+ resources :contact_mails, only: [:new, :create]
9
+ get '/contact_mails', to: 'contact_mails#create'
14
10
  ```
15
11
 
16
12
  【contact_mails_controller.rb】
@@ -26,16 +22,12 @@
26
22
  @contact = ContactMail.new(contact_params)
27
23
  if @contact.save
28
24
  ContactMailer.contact_mail(@contact).deliver
29
- redirect_to contact_mail_path(@contact), notice: "お問い合わせを受け付けました。"
25
+ redirect_to contact_mails_path(@contact), notice: "お問い合わせを受け付けました。"
30
26
  else
31
27
  redirect_to new_contact_mail_path, alert: "入力に不備があります。"
32
28
  end
33
29
  end
34
30
 
35
- def show
36
- @contact = ContactMail.find(params[:id])
37
- end
38
-
39
31
  private
40
32
 
41
33
  def contact_params
@@ -49,7 +41,7 @@
49
41
  <section id="contact_mails">
50
42
  <h5>お問い合わせフォーム</h5><br><br>
51
43
 
52
- <%= form_with model: @contact do |f| %>
44
+ <%= form_with model: @contact, url: contact_mails_path, html: {method: :post} do |f| %>
53
45
  <form>
54
46
  <div class="form-group">
55
47
  <label>お名前 <span class="label label-danger">必須</span></label>
@@ -87,7 +79,7 @@
87
79
  </section>
88
80
  ```
89
81
 
90
- show.html.erb】
82
+ create.html.erb】
91
83
  ```
92
84
  <section id="contact_mails">
93
85
  <h5>問い合わせ完了画面</h5><br>
@@ -107,27 +99,27 @@
107
99
  <%= @contact.message %>
108
100
  <br><br>
109
101
  【返信先】<br>
110
- <%= @contact.email %><br>
102
+ <%= @contact.email<br>
111
103
  <br>
112
104
  ------------------------------------------------
113
- </p>
105
+ </p> %>
114
106
 
115
107
  </section>
116
108
  ```
117
109
 
110
+
118
111
  ### 行ったこと
119
112
 
113
+ コントローラの`contact_params`内を
114
+ ```
115
+ def contact_params
116
+ params.permit(:name, :email, :subject, :message)
117
+ end
118
+ ````
120
- ①show.html.erbファイル名をcreate.html.erb変更
119
+ に変えてみるとエラーはでないもの、create画面が表示されず
121
- ②リダイレクト先を`redirect_to contact_mails_path(@contact)`変更
120
+ `入力不備があります。`と表示される状態です。
122
121
 
123
- ①と②を行うと
124
- `Unknown action`
125
- `The action 'index' could not be found for ContactMailsController`
126
- と出てしまいます。
127
122
 
123
+ ②リダイレクト先を`redirect_to contact_mails_path(@contact)`に変更
128
124
 
129
- コントローラの記述が悪いのだと思っていますが、どこが原因なのでしょうか。。。
125
+ どこが原因なのでしょうか。。。
130
-
131
- また、「Rails wayにしたがって」という部分は参考書のことなのでしょうか?
132
-
133
- プログラミング初心者で、基礎的な部分なのかと思いお恥ずかしいのですが、ご教示頂きたいです。