質問編集履歴

2

補足の追記

2017/06/16 10:45

投稿

riamk
riamk

スコア47

test CHANGED
File without changes
test CHANGED
@@ -173,3 +173,13 @@
173
173
  ユーザーが存在する場合と、存在しない(nil)場合の処理をif文で条件分岐して表示すればいいのかと思い、このコードを書きました。
174
174
 
175
175
  ですが、nilの場合の判定ができていないのか、ユーザーが存在しない場合も`<%= timeline.user.name %>`などが呼び出されエラーになってしまいます。
176
+
177
+
178
+
179
+ *試したことへの補足
180
+
181
+ なぜnilの判定がうまくできないのか?
182
+
183
+ ユーザーがいなくなった(退会した)記事の中身を見てみたらユーザーIDは残っていた。
184
+
185
+ これが原因でユーザーIDのnil判定ができていませんでした。

1

試してみたことを追記しました

2017/06/16 10:45

投稿

riamk
riamk

スコア47

test CHANGED
File without changes
test CHANGED
@@ -115,3 +115,61 @@
115
115
  ###補足情報(言語/FW/ツール等のバージョンなど)
116
116
 
117
117
  他に必要なコードなどあれば記載しますので、何卒よろしくお願いいたします。
118
+
119
+
120
+
121
+ nilに対して対応して試してみたこと
122
+
123
+ `timeline/index.html.erb`
124
+
125
+
126
+
127
+ ```ruby
128
+
129
+ <!-- 投稿一覧 -->
130
+
131
+ <% @timelines.each do |timeline| %>
132
+
133
+ <% if timeline&.user_id.present? %>
134
+
135
+ <%= link_to user_path(timeline.user_id) do %>
136
+
137
+ <%= profile_img(timeline.user)%>
138
+
139
+ <% end %>
140
+
141
+ <% else %>
142
+
143
+ # ユーザーIDがnilの場合のプロフィール画像の表示を記述
144
+
145
+ <% end %>
146
+
147
+
148
+
149
+ <% if timeline&.user_id.present? %>
150
+
151
+ <%= timeline.user.name %>
152
+
153
+ <%= link_to timeline_path(timeline) do %>
154
+
155
+ <%= image_tag (timeline.photo_url) if timeline.photo.present? %>
156
+
157
+ <%= timeline.content %>
158
+
159
+ <% end %>
160
+
161
+ <% else %>
162
+
163
+ # ユーザーIDがnilの場合の処理
164
+
165
+ <% end %>
166
+
167
+ <% end %>
168
+
169
+ ```
170
+
171
+
172
+
173
+ ユーザーが存在する場合と、存在しない(nil)場合の処理をif文で条件分岐して表示すればいいのかと思い、このコードを書きました。
174
+
175
+ ですが、nilの場合の判定ができていないのか、ユーザーが存在しない場合も`<%= timeline.user.name %>`などが呼び出されエラーになってしまいます。