質問編集履歴

1

delete

2020/04/25 09:49

投稿

rurururururu
rurururururu

スコア17

test CHANGED
File without changes
test CHANGED
@@ -1,215 +1,3 @@
1
- ### 前提・実現したいこと
1
+ delete
2
2
 
3
- rails投稿アプリを作成ています。
4
-
5
-
6
-
7
- 画像を一覧表示させる機能を実装中に以下のエラーメッセージが発生しました。
8
-
9
- 以前まではこの記述で問題なく画像の表示が行えていましたが、carrierwave導入後あたりからエラーがで始めたように思います。
10
-
11
-
12
-
13
- このエラーを解消し、eachの中で画像表示させるようにしたいです。
14
-
15
- お手数ですが、お力をお貸しいただけますと幸いです。
16
-
17
- よろしくお願いいたします。
18
-
19
-
20
-
21
- ### 発生している問題・エラーメッセージ
22
-
23
-
24
-
25
- ```
26
-
27
- NoMethodError in Admin::Histories#index
28
-
29
- Showing /Users/tech-camp/projects/***/app/views/admin/histories/index.html.haml where line #20 raised:
30
-
31
-
32
-
33
- undefined method `src' for #<Image::ActiveRecord_Associations_CollectionProxy:0x00007fdcce52bea0>
34
-
35
-
36
-
37
- ```
38
-
39
-
40
-
41
- ### 該当のソースコード
42
-
43
-
44
-
45
- ```ここに言語名を入力
46
-
47
- - @histories.each do |history|
48
-
49
- .wrapper-main__parent
50
-
51
- %p.title= history.title
52
-
53
- = image_tag history.images.src.url,class:"history_image" if history.images.src.url.present?
54
-
55
- ```
56
-
57
-
58
-
59
- ### 試したこと
60
-
61
-
62
-
63
- エラーが発生し始めたのは、carrierwaveを導入してからだと考えています。
64
-
65
- 調べたところ、ActiveRecord_Associations_CollectionProxyが配列のため、番号を指定しないと表示がされないのではないかと考えています。
66
-
67
-
68
-
69
- というのも、eachの前に1番目の画像だけを常に表示させるように、下記の記述をしておりました。
70
-
71
-
72
-
73
- controller
74
-
75
- ```
76
-
77
- @history_first = History.find(1)
78
-
79
- ```
80
-
81
- view
82
-
83
- ```
84
-
85
- = image_tag @history_first.src.url,class:"history_image" if @history_first.src.url.present?
86
-
87
- ```
88
-
89
- 途中からこの記述でもエラーが出るようになってしまい、調べたところ番号を指定しなければならないとのことでした。
90
-
91
-
92
-
93
- そこで、下記の記述に変えたところ、エラーは解消されました。
94
-
95
- (そもそもコントローラーでid(1)を指定しているのですが、ActiveRecord_Associations_CollectionProxyが原因で配列になってしまっていると考えています。)
96
-
97
- ```
98
-
99
- = image_tag @history_first.images.find(1).src.url,class:"history_image" if @history_first.images.find(1).src.url.present?
100
-
101
- ```
102
-
103
-
104
-
105
- ・アソシエーションの見直し(historyとimageテーブルで以下のようにアソシエーションを組んでいます。)
106
-
107
-
108
-
109
- iamge.rb
110
-
111
- ```
112
-
113
- class Image < ApplicationRecord
114
-
115
-
116
-
117
- mount_uploader :src, ImageUploader
118
-
119
-
120
-
121
- belongs_to :cooking
122
-
123
- belongs_to :history
124
-
125
- end
126
-
127
- ```
128
-
129
-
130
-
131
- history.rb
132
-
133
- ```
134
-
135
- class History < ApplicationRecord
136
-
137
- belongs_to :user
138
-
139
- has_many :images, dependent: :destroy
140
-
141
- accepts_nested_attributes_for :images, allow_destroy: true
142
-
143
- end
144
-
145
- ```
146
-
147
-
148
-
149
- ・コントローラーの記述を確認
150
-
151
- ```
152
-
153
- def index
154
-
155
- @histories = History.includes(:user).page(params[:page]).per(5).order('created_at DESC')
156
-
157
- @history_first = History.find(1)
158
-
159
- end
160
-
161
- ```
162
-
163
-
164
-
165
- ・各値の中身を確認
166
-
167
- ```
168
-
169
- @histories
170
-
171
- #<ActiveRecord::Relation [#<History id: 4, text: "aa", title: "eee", user_id: 1, created_at: "2020-04-25 02:50:58", updated_at: "2020-04-25 02:50:58">, #<History id: 3, text: "aaa", title: "aaa", user_id: 1, created_at: "2020-04-19 04:24:02", updated_at: "2020-04-19 04:24:02">, #<History id: 2, text: "aaa", title: "eee", user_id: 1, created_at: "2020-04-19 03:58:31", updated_at: "2020-04-19 03:58:31">, #<History id: 1, text: "aaa", title: "eee", user_id: 1, created_at: "2020-04-18 15:32:30", updated_at: "2020-04-18 15:32:30">]>
172
-
173
- ```
174
-
175
-
176
-
177
- history
178
-
179
- ```
180
-
181
- #<History id: 4, text: "aa", title: "eee", user_id: 1, created_at: "2020-04-25 02:50:58", updated_at: "2020-04-25 02:50:58">
182
-
183
- ```
184
-
185
-
186
-
187
- history.images
188
-
189
- ```
190
-
191
- #<ActiveRecord::Associations::CollectionProxy [#<Image id: 4, src: "スクリーンショット_2020-04-24_19.56.35.png", cooking_id: nil, created_at: "2020-04-25 02:50:58", updated_at: "2020-04-25 02:50:58", history_id: 4>]>
192
-
193
- ```
194
-
195
-
196
-
197
- history.images.src
198
-
199
- ```
200
-
201
- NoMethodError: undefined method `src' for #<Image::ActiveRecord_Associations_CollectionProxy:0x00007fdcce52bea0>
202
-
203
- from /Users/tech-camp/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activerecord-5.2.4.2/lib/active_record/relation/delegation.rb:125:in `method_missing'
204
-
205
- from /Users/tech-camp/projects/kobu/app/views/admin/histories/index.html.haml:20:in `block in _app_views_admin_histories_index_html_haml__1571811841767417161_70293145854480'
206
-
207
- ```
208
-
209
-
210
-
211
- ### 補足情報(FW/ツールのバージョンなど)
212
-
213
-
214
-
215
- railsのバージョンは5.2.4.2です。
3
+ 質問の仕方がよくないと思いましたの、削除いたします。