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

質問編集履歴

3

コントローラー追記

2021/05/12 01:02

投稿

akikko
akikko

スコア32

title CHANGED
File without changes
body CHANGED
@@ -34,7 +34,7 @@
34
34
  ```
35
35
 
36
36
 
37
- newの中身はこちら
37
+ newのコントローラーの中身はこちら
38
38
  ```ここに言語名を入力
39
39
  def new
40
40
  @event_id = params[:event_id]

2

validationを追記

2021/05/12 01:02

投稿

akikko
akikko

スコア32

title CHANGED
File without changes
body CHANGED
File without changes

1

validationを追記

2021/05/12 01:00

投稿

akikko
akikko

スコア32

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,11 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
+ イベントごとにサポーター登録画面があります。
3
- サポーター登録画面で、validationでエラーメッセージを表示させるために、
4
+ サポーター登録画面で、メールアドレスのvalidationで不正な登録内容にエラーメッセージを表示させるために、保存できなかった時にrenderで登録画面を再表示させたいです。
4
- 保存できなかった時にrenderで登録画面を表示させたい。
5
5
 
6
+ しかし、renderの際に、イベントの画像がnilになるというエラーに悩まされています。
7
+ どうすれば解決ができるでしょうか?
8
+
6
9
  ### 発生している問題・エラーメッセージ
7
10
  ```
8
11
  NoMethodError in Supporters#create
@@ -10,7 +13,7 @@
10
13
  ```
11
14
 
12
15
  ####エラー詳細
13
- ```ここに言語を入力
16
+ ```
14
17
  ActionView::Template::Error (undefined method `image?' for nil:NilClass):
15
18
  7:<div>
16
19
  8: <% if @event.image? %>
@@ -22,7 +25,7 @@
22
25
  ### 該当のソースコード
23
26
 
24
27
  renderで、newに値を渡すように設定しています
25
- ```ここに言語を入力
28
+ ```
26
29
  if @supporter.save
27
30
   redirect_to ###
28
31
  else
@@ -39,6 +42,13 @@
39
42
  end
40
43
  ```
41
44
 
45
+ varidationの中身はこちら
46
+ ```
47
+ VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+.[a-z]+\z/i
48
+ validates :email, presence: { message: "全角・スペースを削除・変更してください" },
49
+        format: { with: VALID_EMAIL_REGEX }
50
+ ```
51
+
42
52
  すいません????
43
53
  シンプルなことのはずだと思うのですが、思いのほか解決できず、どなたか教えて頂けると嬉しいです。
44
54
  どうぞよろしくお願いいたします。