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

質問編集履歴

3

タイトル修正

2019/01/14 23:35

投稿

b_kazu
b_kazu

スコア26

title CHANGED
@@ -1,1 +1,1 @@
1
- Rails5 validatesエラー時にrenderできない。なのでredirectしてもエラーメッセージが取得できない
1
+ Rails5 validatesエラー時にrenderできない
body CHANGED
File without changes

2

2019/01/15 試したことを追記しました。

2019/01/14 23:35

投稿

b_kazu
b_kazu

スコア26

title CHANGED
@@ -1,1 +1,1 @@
1
- Rails5 validatesエラーの内容を確認するためのrender plain: errors.inspect表示されない
1
+ Rails5 validatesエラー時にrenderできない。なのでredirectしてもエラーメッセージ取得できない
body CHANGED
@@ -114,9 +114,26 @@
114
114
  if @article.save
115
115
  redirect_to articles_path
116
116
  else
117
- render plain: @article.errors.inspect
117
+ #render plain: @article.errors.inspect
118
118
 
119
- #@article = Article.new(article_params)
119
+ @article = Article.new(article_params)
120
- #render 'new'
120
+ render 'new'
121
121
  end
122
+ ```
123
+
124
+ **==追記 2019/01/15==**
125
+
126
+ 下記を試しました。
127
+ createアクションの条件分岐を書き換え、saveされないときに、`redirect_to new_article_path`としたらページ遷移してnewページのトップ位置に戻るようになりましたがエラーメッセージは取得できませんでした。
128
+
129
+ **これだとnewページのトップに遷移するがエラーメッセージは取得できない**
130
+ ```ruby
131
+ if @article.save
132
+ redirect_to articles_path
133
+ else
134
+ #render plain: @article.errors.inspect
135
+
136
+ @article = Article.new(article_params)
137
+ redirect_to new_article
138
+ end
122
139
  ```

1

試したことを追記しました。

2019/01/14 22:23

投稿

b_kazu
b_kazu

スコア26

title CHANGED
@@ -1,1 +1,1 @@
1
- Rails5 render plain: errors.inspectが表示できない
1
+ Rails5 validatesエラーの内容を確認するためのrender plain: errors.inspectが表示されない
body CHANGED
@@ -7,6 +7,7 @@
7
7
  以前はnew画面でエラーメッセージの表示もできていました。
8
8
  deviseの導入作業をし終えて気がついたら上記の状態になっていました。
9
9
 
10
+
10
11
  **==環境==**
11
12
  ruby 2.5.3p105
12
13
  rails 5.2.2
@@ -102,4 +103,20 @@
102
103
  config.i18n.default_locale = :ja
103
104
  end
104
105
  end
106
+ ```
107
+
108
+
109
+ **==追記==**
110
+ 下記を試しました。
111
+ createアクションの条件分岐を下記のように書き換えnew.html.erbに`<p><%= @article.errors.size %></p>`を追記して、必須項目を空白のままsubmitしたにもかかわらず`0`が返ってきました。
112
+
113
+ ```ruby
114
+ if @article.save
115
+ redirect_to articles_path
116
+ else
117
+ render plain: @article.errors.inspect
118
+
119
+ #@article = Article.new(article_params)
120
+ #render 'new'
121
+ end
105
122
  ```