質問編集履歴

5

文法の修正

2016/10/20 02:25

投稿

s.k
s.k

スコア423

test CHANGED
File without changes
test CHANGED
@@ -16,6 +16,22 @@
16
16
 
17
17
 
18
18
 
19
+
20
+
21
+ shopindexページから
22
+
23
+ ![shopindexページ](7b920bf32a336392f1ada92f5d7bc8bf.png)
24
+
25
+
26
+
27
+
28
+
29
+ 株式会社ソラコムというshowページリンクをクリックすると、
30
+
31
+
32
+
33
+
34
+
19
35
  ```
20
36
 
21
37
  undefined method `email' for nil:NilClass
@@ -24,12 +40,114 @@
24
40
 
25
41
  ```
26
42
 
43
+
44
+
27
- エラているファイルです。
45
+ showペジのコードです。
46
+
47
+ 下から6行目の_micropostパーシャルに問題があります。
48
+
49
+
50
+
51
+ 【shops/show.html.erb】
52
+
53
+
54
+
55
+ ```
56
+
57
+ <% provide(:title, @shop.shopname) %>
58
+
59
+ <div class="row">
60
+
61
+ <!-- ページ左 -->
62
+
63
+ <aside class="col-md-4">
64
+
65
+ <section class="shop_info">
66
+
67
+ <h1>
68
+
69
+ <!-- アイコン -->
70
+
71
+ <%= gravatar_to @shop %>
72
+
73
+ <!-- ユーザー名 -->
74
+
75
+ <%= @shop.shopname %>
76
+
77
+ </h1>
78
+
79
+ </section>
80
+
81
+ <section class="stats">
82
+
83
+ <!-- follow,followerリンク -->
84
+
85
+ <%= render 'shared/stats'%>
86
+
87
+ </section>
88
+
89
+ </aside>
90
+
91
+
92
+
93
+
94
+
95
+ <!-- ページ右 -->
96
+
97
+ <div class="col-md-8">
98
+
99
+ <!-- follow(shop-to-shop)ボタン -->
100
+
101
+ <%= render 'friend_form' if shop_signed_in? %>
102
+
103
+
104
+
105
+ <!-- follow(user-to-shop)ボタン -->
106
+
107
+ <% if user_signed_in? %>
108
+
109
+ <div id="follow_form">
110
+
111
+ <%= render 'associates/associate_links'%>
112
+
113
+ </div>
114
+
115
+ <% end %>
116
+
117
+
118
+
119
+ <% if @shop.microposts.any? %>
120
+
121
+ <!-- 投稿数 -->
122
+
123
+ <h3>Microposts (<%= @shop.microposts.count %>)</h3>
124
+
125
+ <ol class="microposts">
126
+
127
+ <!-- 投稿一覧 -->
128
+
129
+ <%= render @microposts %>
130
+
131
+ </ol>
132
+
133
+ <%= will_paginate @microposts %>
134
+
135
+ <% end %>
136
+
137
+ </div>
138
+
139
+ </div>
140
+
141
+ ```
142
+
143
+ _micropostパーシャルです。
28
144
 
29
145
  4行目のgaravatar_forがエラーとなっています。
30
146
 
31
147
 
32
148
 
149
+
150
+
33
151
  【_micropost.html.erb】
34
152
 
35
153
  ```
@@ -160,6 +278,8 @@
160
278
 
161
279
  コードは以下です。
162
280
 
281
+ この4行目、emailがnilだとエラーメッセージがでます。。。
282
+
163
283
 
164
284
 
165
285
  【users_helper】
@@ -174,11 +294,11 @@
174
294
 
175
295
  size = options[:size]
176
296
 
177
- gravatar_id = Digest::MD5::hexdigest(@user.email.downcase)
297
+ gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
178
298
 
179
299
  gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}?s=#{size}"
180
300
 
181
- image_tag(gravatar_url, alt: @user.username, class: "gravatar")
301
+ image_tag(gravatar_url, alt: user.username, class: "gravatar")
182
302
 
183
303
  end
184
304
 
@@ -198,6 +318,16 @@
198
318
 
199
319
 
200
320
 
321
+ _micropostパーシャルの時にshop専用に用意したメソッドgravatar_toメソッドを使えばこのような問題は起こらないと思うのです。
322
+
323
+
324
+
325
+ しかし、_micropostパーシャルの条件分岐がuser_signed_in?しかないので、garavatar_forを使わざるを得ない状況に陥ってしまいます。
326
+
327
+
328
+
329
+ そこで、この問題を解決できる条件分岐はないかお聞きしたいです!
330
+
201
331
 
202
332
 
203
333
 

4

文法の修正

2016/10/20 02:25

投稿

s.k
s.k

スコア423

test CHANGED
File without changes
test CHANGED
@@ -10,35 +10,27 @@
10
10
 
11
11
 
12
12
 
13
-
14
-
15
- あるモデルからもう一方のモデルshowページへ飛べば、遷移先のデータに対応した取得ができるように条件分岐をする必要があります。現状、応急措置として私が用意している条件分岐はuser_signed_in?といったログインしているモデルを制限するものです。
13
+ Userログイン→Shopindexページ→Shopshowページ
16
-
17
-
18
-
19
-
20
14
 
21
15
  ###発生している問題・エラーメッセージ
22
16
 
17
+
18
+
19
+ ```
20
+
21
+ undefined method `email' for nil:NilClass
22
+
23
+
24
+
25
+ ```
26
+
23
- しかし、上記手法は問題があります。
27
+ エラーがているファイルです。
24
-
28
+
25
- データ取得Userペジ上専用のものになってしまいます。
29
+ 4行目garavatar_forエラなっています。
26
-
27
-
28
-
29
- Shopモデルのshowページへ飛んだとしてもログインしているのはUserです。
30
+
30
-
31
- 条件分岐がuser_signed_in?レベルのおおざっぱなものだとUserのデータベースからデータを取得する動きをしてしまいます。
31
+
32
-
33
-
34
-
32
+
35
- 私が書いたshowコードは下記になります。
33
+ 【_micropost.html.erb】
36
-
37
-
38
-
39
-
40
-
41
-
42
34
 
43
35
  ```
44
36
 
@@ -162,12 +154,18 @@
162
154
 
163
155
 
164
156
 
157
+
158
+
165
- 具体的なエラーはアイコン表示用ヘルパーのgravatarです。
159
+ gravatarメソッドです。
166
160
 
167
161
  コードは以下です。
168
162
 
169
163
 
170
164
 
165
+ 【users_helper】
166
+
167
+
168
+
171
169
  ```
172
170
 
173
171
  module UsersHelper
@@ -198,26 +196,12 @@
198
196
 
199
197
 
200
198
 
201
- ただ、正しい条件分岐をしなければ、
199
+
202
-
203
- gravatarを改善してもその場しのぎになります。
200
+
204
-
205
-
206
-
207
- そこで、ここでお聞きしたいのは、
201
+
208
-
209
-
210
-
211
- Userとして、Shopサイドのページへ飛んだ時に、
202
+
212
-
213
- Shopモデルでデータを取り出す用に区別できる条件分岐を教えてほしいということです。
203
+
214
-
215
-
216
-
217
-
218
-
219
-
220
-
221
-
222
-
204
+
205
+
206
+
223
- 手すきでお願いします。
207
+ よろしくねがいします。

3

文法修正

2016/10/20 02:12

投稿

s.k
s.k

スコア423

test CHANGED
File without changes
test CHANGED
File without changes

2

更新してpvあげるため

2016/10/19 08:16

投稿

s.k
s.k

スコア423

test CHANGED
File without changes
test CHANGED
File without changes

1

情報追加

2016/10/19 07:21

投稿

s.k
s.k

スコア423

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- あるモデルからもう一方のモデルshowページへ飛べば、現在ザーに対応したページ仕様が必要になります。現状、応急措置として私が用意している条件分岐はuser_signed_in?といったログインしているモデルを制限するものです。
15
+ あるモデルからもう一方のモデルshowページへ飛べば、遷移先に対応した取得できるように条件分岐をする必要があります。現状、応急措置として私が用意している条件分岐はuser_signed_in?といったログインしているモデルを制限するものです。
16
16
 
17
17
 
18
18
 
@@ -22,7 +22,7 @@
22
22
 
23
23
  しかし、上記手法では問題があります。
24
24
 
25
- データの取得がUser仕様になってしまいます。
25
+ データの取得がUserページ上専用のものになってしまいます。
26
26
 
27
27
 
28
28
 
@@ -210,7 +210,7 @@
210
210
 
211
211
  Userとして、Shopサイドのページへ飛んだ時に、
212
212
 
213
- Shopモデルでデータを取り出す条件分岐を教えてほしいということです。
213
+ Shopモデルでデータを取り出す用に区別できる条件分岐を教えてほしいということです。
214
214
 
215
215
 
216
216