質問編集履歴
4
書式の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -137,6 +137,13 @@
|
|
137
137
|
winterboum様にご回答いただき、いただいたアドバイスを元に変更してみたところ、バリデーションのエラーメッセージが表示されるようになりました!
|
138
138
|
|
139
139
|
一方で、ボタンをクリックすると常にエラーメッセージが表示されるようになってしまい、新規投稿が保存されなくなるという処理になってしまいました。。
|
140
|
+
|
141
|
+
```バリデーションによって出ているエラーメッセージ
|
142
|
+
2 errors prohibited this book from being saved:
|
143
|
+
・Title can't be blank
|
144
|
+
・Body can't be blank
|
145
|
+
```
|
146
|
+
|
140
147
|
現在、エラーは出ていないのですが、上記の状態となっております。
|
141
148
|
|
142
149
|
以下がコードになります!
|
3
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -130,8 +130,9 @@
|
|
130
130
|
```
|
131
131
|
|
132
132
|
|
133
|
-
追記(2021/7/25/13:11)
|
133
|
+
### ここから以下は追記です(2021/7/25/13:11)
|
134
134
|
|
135
|
+
|
135
136
|
**現在**
|
136
137
|
winterboum様にご回答いただき、いただいたアドバイスを元に変更してみたところ、バリデーションのエラーメッセージが表示されるようになりました!
|
137
138
|
|
2
文法の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,6 +7,7 @@
|
|
7
7
|
下記がエラーメッセージと現在のコードとなります。
|
8
8
|
|
9
9
|
### 発生している問題・エラーメッセージ
|
10
|
+
**当初**
|
10
11
|
indexのページに飛ぼうとすると、下記エラーメッセージが表示されます。
|
11
12
|
|
12
13
|
```errormessage
|
@@ -129,7 +130,140 @@
|
|
129
130
|
```
|
130
131
|
|
131
132
|
|
133
|
+
追記(2021/7/25/13:11)
|
132
134
|
|
135
|
+
**現在**
|
136
|
+
winterboum様にご回答いただき、いただいたアドバイスを元に変更してみたところ、バリデーションのエラーメッセージが表示されるようになりました!
|
137
|
+
|
138
|
+
一方で、ボタンをクリックすると常にエラーメッセージが表示されるようになってしまい、新規投稿が保存されなくなるという処理になってしまいました。。
|
139
|
+
現在、エラーは出ていないのですが、上記の状態となっております。
|
140
|
+
|
141
|
+
以下がコードになります!
|
142
|
+
|
143
|
+
```Controller
|
144
|
+
class BooksController < ApplicationController
|
145
|
+
def index
|
146
|
+
@books = Book.all
|
147
|
+
@book = Book.new
|
148
|
+
|
149
|
+
end
|
150
|
+
|
151
|
+
def new
|
152
|
+
@book = Book.new
|
153
|
+
end
|
154
|
+
|
155
|
+
def create
|
156
|
+
@book = Book.new(book_params)
|
157
|
+
if @book.save
|
158
|
+
flash[:notice] = "Book was successfully created."
|
159
|
+
redirect_to book_path(@book.id)
|
160
|
+
else
|
161
|
+
#下記がelseの後に行き着く画面
|
162
|
+
@books = Book.all
|
163
|
+
render :index
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
def show
|
168
|
+
@book = Book.find(params[:id])
|
169
|
+
end
|
170
|
+
|
171
|
+
def edit
|
172
|
+
@book = Book.find(params[:id])
|
173
|
+
end
|
174
|
+
|
175
|
+
def update
|
176
|
+
book = Book.find(params[:id])
|
177
|
+
book.update!(book_params)
|
178
|
+
p "標準出力にのみ反映"
|
179
|
+
logger.debug("標準出力とログファイルに記録される")
|
180
|
+
redirect_to book_path(book)
|
181
|
+
end
|
182
|
+
|
183
|
+
def destroy
|
184
|
+
book = Book.find(params[:id])
|
185
|
+
book.destroy
|
186
|
+
redirect_to books_path
|
187
|
+
end
|
188
|
+
|
189
|
+
|
190
|
+
private
|
191
|
+
def book_params
|
192
|
+
params.permit(:title, :body)
|
193
|
+
end
|
194
|
+
|
195
|
+
end
|
196
|
+
|
197
|
+
```
|
198
|
+
|
199
|
+
```indexERB
|
200
|
+
<header></header>
|
201
|
+
|
202
|
+
<main class="top">
|
203
|
+
<h1>Books</h1>
|
204
|
+
|
205
|
+
<!--テーブル入力欄はここから-->
|
206
|
+
<table>
|
207
|
+
<tr>
|
208
|
+
<th>Title</th>
|
209
|
+
<th>Body</th>
|
210
|
+
</tr>
|
211
|
+
<% @books.each do |book| %>
|
212
|
+
<tr>
|
213
|
+
<td><%= book.title %></td>
|
214
|
+
<td><%= book.body %></td>
|
215
|
+
<!--なぜここのリンクはbook.idになるのか?-->
|
216
|
+
<!--本来なら(@book)で行けるのでは?-->
|
217
|
+
<td><%= link_to "Show", book_path(book.id)%></td>
|
218
|
+
<td><%= link_to "Edit", edit_book_path(book.id) %></td>
|
219
|
+
<td><%= link_to "Destroy", book_path(book), method: :delete, "data-confirm" => "Are you sure?" %></td>
|
220
|
+
</tr>
|
221
|
+
<% end %>
|
222
|
+
</table>
|
223
|
+
<!--テーブル入力欄はここまで-->
|
224
|
+
|
225
|
+
<h2>New book</h2>
|
226
|
+
|
227
|
+
<!--- ここからエラーメッセージの出力 -->
|
228
|
+
<% if @book.errors.any? %>
|
229
|
+
<%= @book.errors.count %> errors prohibited this book from being saved:
|
230
|
+
<ul>
|
231
|
+
<% @book.errors.full_messages.each do |message| %>
|
232
|
+
<li>
|
233
|
+
<%= message %>
|
234
|
+
</li>
|
235
|
+
<% end %>
|
236
|
+
</ul>
|
237
|
+
<% end %>
|
238
|
+
|
239
|
+
|
240
|
+
<!--フォーム×2 + 投稿ボタンはここから-->
|
241
|
+
<%= form_with model:@book, local: true do |f| %>
|
242
|
+
<h5>Title</h5>
|
243
|
+
<%= f.text_field :title %>
|
244
|
+
<h5>Body</h5>
|
245
|
+
<%= f.text_area :body %>
|
246
|
+
<div>
|
247
|
+
<%= f.submit 'Create Book' %>
|
248
|
+
</div>
|
249
|
+
|
250
|
+
<% end %>
|
251
|
+
<!--フォーム×2 + 投稿ボタンはここまで-->
|
252
|
+
</main>
|
253
|
+
|
254
|
+
<footer></footer>
|
255
|
+
```
|
256
|
+
|
257
|
+
```bookModel
|
258
|
+
class Book < ApplicationRecord
|
259
|
+
validates :title, presence: true
|
260
|
+
validates :body, presence: true
|
261
|
+
end
|
262
|
+
|
263
|
+
```
|
264
|
+
|
265
|
+
どうかよろしくお願いいたします。。
|
266
|
+
|
133
267
|
### 試したこと
|
134
268
|
https://teratail.com/questions/299480?link=qa_related_pc_sidebar
|
135
269
|
上記を参考にcreateアクション内の定義を確認
|
1
書式の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,6 +3,9 @@
|
|
3
3
|
読んだ本の感想を投稿する簡易的なアプリケーションを作成しています。
|
4
4
|
現在、フォームが空欄だった時のエラーメッセージを表示する部分を実装しています。
|
5
5
|
|
6
|
+
バリデーションのエラーメッセージを表示するためには現在のコードをどのように変更すればいいのか、ご教示いただけますでしょうか。。
|
7
|
+
下記がエラーメッセージと現在のコードとなります。
|
8
|
+
|
6
9
|
### 発生している問題・エラーメッセージ
|
7
10
|
indexのページに飛ぼうとすると、下記エラーメッセージが表示されます。
|
8
11
|
|
@@ -12,8 +15,6 @@
|
|
12
15
|
|
13
16
|
undefined method `errors' for #<Book::ActiveRecord_Relation:0x00007f15b00ba0a0>
|
14
17
|
```
|
15
|
-
バリデーションのエラーメッセージを表示するためには現在のコードをどのように変更すればいいのか、ご教示いただけますでしょうか。。
|
16
|
-
下記が現在のコードとなります。
|
17
18
|
|
18
19
|
### 該当のソースコード
|
19
20
|
|