質問編集履歴
2
コントローラーおよび、エラーメッセージを追記しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -28,11 +28,133 @@
|
|
28
28
|
|
29
29
|
|
30
30
|
|
31
|
+
> reviewモデル
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
```Ruby
|
36
|
+
|
37
|
+
class Review < ApplicationRecord
|
38
|
+
|
39
|
+
belongs_to :user
|
40
|
+
|
41
|
+
belongs_to :product
|
42
|
+
|
43
|
+
has_one :review_image
|
44
|
+
|
45
|
+
accepts_nested_attributes_for :review_image
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
default_scope -> { order(created_at: :desc) }
|
50
|
+
|
51
|
+
validates :user_id, presence: true
|
52
|
+
|
53
|
+
validates :product_id, presence: true
|
54
|
+
|
55
|
+
validates :content, presence: true, length: { minimum: 200 }
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
```
|
60
|
+
|
61
|
+
すみませんが、どうぞ宜しくお願いします。
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
##追記
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
```Ruby
|
70
|
+
|
71
|
+
<div class="review-edit">
|
72
|
+
|
73
|
+
<%= form_for(@review) do |f| %>
|
74
|
+
|
75
|
+
<div class="post-rate">
|
76
|
+
|
77
|
+
<div class="form-group">
|
78
|
+
|
79
|
+
<label for="rate">評価</label>
|
80
|
+
|
81
|
+
<%= f.select :rate, {'1' => 1, '2' => 2, '3' => 3, '4' => 4, '5' => 5}, class: "form-control" %>
|
82
|
+
|
83
|
+
</div>
|
84
|
+
|
85
|
+
</div>
|
86
|
+
|
87
|
+
<div class="post-contents">
|
88
|
+
|
89
|
+
<div class="form-group">
|
90
|
+
|
91
|
+
<label for="textarea">口コミを入力</label>
|
92
|
+
|
93
|
+
<%= f.text_area :content, class: "form-control", placeholder: "口コミ内容", rows: "10", onKeyUp: "countLength(value, 'textlength')" %>
|
94
|
+
|
95
|
+
<p>現在<span id="textlength">0文字</span></p>
|
96
|
+
|
97
|
+
</div>
|
98
|
+
|
99
|
+
</div>
|
100
|
+
|
101
|
+
<div class="post-photo">
|
102
|
+
|
103
|
+
<div class="form-group">
|
104
|
+
|
105
|
+
<label for="review_image">画像を投稿</label>
|
106
|
+
|
107
|
+
<%= f.fields_for :review_image do |review_image| %>
|
108
|
+
|
109
|
+
<%= review_image.file_field :image %>
|
110
|
+
|
111
|
+
<% end %>
|
112
|
+
|
113
|
+
</div>
|
114
|
+
|
115
|
+
</div>
|
116
|
+
|
117
|
+
<%= f.submit "更新する", class: "btn" %>
|
118
|
+
|
119
|
+
<% end %>
|
120
|
+
|
121
|
+
</div>
|
122
|
+
|
123
|
+
```
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
##追記エラー
|
128
|
+
|
129
|
+
```
|
130
|
+
|
131
|
+
heroku[router]: at=info method=POST path="/reviews/114" dyno=web.1 connect=1ms service=32ms status=500 bytes=1827 protocol=http
|
132
|
+
|
133
|
+
app[web.1]: Started PATCH "/reviews/114" for 108.162.246.164 at 2017-08-15 08:12:08 +0000
|
134
|
+
|
135
|
+
app[web.1]: Processing by ReviewsController#update as HTML
|
136
|
+
|
137
|
+
app[web.1]: Parameters: {"utf8"=>"✓", "authenticity_token"=>"R+GNVKUKE/9SPW4ULsVptV7C6bVw==", "review"=>{"rate"=>"5", "content"=>"口コミが入ります。", "review_image_attributes"=>{"id"=>"20"}}, "commit"=>"編集する", "id"=>"114"}
|
138
|
+
|
139
|
+
app[web.1]: Review Load (1.9ms) SELECT "reviews".* FROM "reviews" WHERE "reviews"."id" = $1 ORDER BY "reviews"."created_at" DESC LIMIT $2 [["id", 114], ["LIMIT", 1]]
|
140
|
+
|
141
|
+
app[web.1]: Completed 500 Internal Server Error in 6ms (ActiveRecord: 1.9ms)
|
142
|
+
|
143
|
+
app[web.1]: ActionController::UnpermittedParameters (found unpermitted parameter: id):
|
144
|
+
|
145
|
+
app[web.1]: app/controllers/reviews_controller.rb:55:in `create_params'
|
146
|
+
|
147
|
+
app[web.1]: app/controllers/reviews_controller.rb:33:in `update'
|
148
|
+
|
149
|
+
```
|
150
|
+
|
151
|
+
|
152
|
+
|
31
153
|
> reviewコントローラー
|
32
154
|
|
33
155
|
|
34
156
|
|
35
|
-
```
|
157
|
+
```
|
36
158
|
|
37
159
|
class ReviewsController < ApplicationController
|
38
160
|
|
@@ -66,13 +188,13 @@
|
|
66
188
|
|
67
189
|
def new
|
68
190
|
|
69
|
-
@product = Product.find(params[:id])
|
191
|
+
@product = Peroduct.find(params[:id])
|
70
192
|
|
71
193
|
if signed_in?
|
72
194
|
|
73
|
-
@
|
195
|
+
@review = current_user.reviews.build
|
74
|
-
|
196
|
+
|
75
|
-
@
|
197
|
+
@review.build_review_image
|
76
198
|
|
77
199
|
else
|
78
200
|
|
@@ -84,6 +206,12 @@
|
|
84
206
|
|
85
207
|
|
86
208
|
|
209
|
+
def show
|
210
|
+
|
211
|
+
end
|
212
|
+
|
213
|
+
|
214
|
+
|
87
215
|
def edit
|
88
216
|
|
89
217
|
end
|
@@ -100,6 +228,8 @@
|
|
100
228
|
|
101
229
|
else
|
102
230
|
|
231
|
+
flash[:alert] = "口コミの編集に失敗しました。"
|
232
|
+
|
103
233
|
render 'edit'
|
104
234
|
|
105
235
|
end
|
@@ -108,6 +238,18 @@
|
|
108
238
|
|
109
239
|
|
110
240
|
|
241
|
+
def destroy
|
242
|
+
|
243
|
+
@review.destroy
|
244
|
+
|
245
|
+
flash[:success] = "口コミが削除されました"
|
246
|
+
|
247
|
+
redirect_to request.referrer || root_url
|
248
|
+
|
249
|
+
end
|
250
|
+
|
251
|
+
|
252
|
+
|
111
253
|
private
|
112
254
|
|
113
255
|
|
@@ -139,99 +281,3 @@
|
|
139
281
|
end
|
140
282
|
|
141
283
|
```
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
> reviewモデル
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
```Ruby
|
150
|
-
|
151
|
-
class Review < ApplicationRecord
|
152
|
-
|
153
|
-
belongs_to :user
|
154
|
-
|
155
|
-
belongs_to :product
|
156
|
-
|
157
|
-
has_one :review_image
|
158
|
-
|
159
|
-
accepts_nested_attributes_for :review_image
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
default_scope -> { order(created_at: :desc) }
|
164
|
-
|
165
|
-
validates :user_id, presence: true
|
166
|
-
|
167
|
-
validates :product_id, presence: true
|
168
|
-
|
169
|
-
validates :content, presence: true, length: { minimum: 200 }
|
170
|
-
|
171
|
-
end
|
172
|
-
|
173
|
-
```
|
174
|
-
|
175
|
-
すみませんが、どうぞ宜しくお願いします。
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
##追記
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
```Ruby
|
184
|
-
|
185
|
-
<div class="review-edit">
|
186
|
-
|
187
|
-
<%= form_for(@review) do |f| %>
|
188
|
-
|
189
|
-
<div class="post-rate">
|
190
|
-
|
191
|
-
<div class="form-group">
|
192
|
-
|
193
|
-
<label for="rate">評価</label>
|
194
|
-
|
195
|
-
<%= f.select :rate, {'1' => 1, '2' => 2, '3' => 3, '4' => 4, '5' => 5}, class: "form-control" %>
|
196
|
-
|
197
|
-
</div>
|
198
|
-
|
199
|
-
</div>
|
200
|
-
|
201
|
-
<div class="post-contents">
|
202
|
-
|
203
|
-
<div class="form-group">
|
204
|
-
|
205
|
-
<label for="textarea">口コミを入力</label>
|
206
|
-
|
207
|
-
<%= f.text_area :content, class: "form-control", placeholder: "口コミ内容", rows: "10", onKeyUp: "countLength(value, 'textlength')" %>
|
208
|
-
|
209
|
-
<p>現在<span id="textlength">0文字</span></p>
|
210
|
-
|
211
|
-
</div>
|
212
|
-
|
213
|
-
</div>
|
214
|
-
|
215
|
-
<div class="post-photo">
|
216
|
-
|
217
|
-
<div class="form-group">
|
218
|
-
|
219
|
-
<label for="review_image">画像を投稿</label>
|
220
|
-
|
221
|
-
<%= f.fields_for :review_image do |review_image| %>
|
222
|
-
|
223
|
-
<%= review_image.file_field :image %>
|
224
|
-
|
225
|
-
<% end %>
|
226
|
-
|
227
|
-
</div>
|
228
|
-
|
229
|
-
</div>
|
230
|
-
|
231
|
-
<%= f.submit "更新する", class: "btn" %>
|
232
|
-
|
233
|
-
<% end %>
|
234
|
-
|
235
|
-
</div>
|
236
|
-
|
237
|
-
```
|
1
ビューを追記しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -173,3 +173,65 @@
|
|
173
173
|
```
|
174
174
|
|
175
175
|
すみませんが、どうぞ宜しくお願いします。
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
##追記
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
```Ruby
|
184
|
+
|
185
|
+
<div class="review-edit">
|
186
|
+
|
187
|
+
<%= form_for(@review) do |f| %>
|
188
|
+
|
189
|
+
<div class="post-rate">
|
190
|
+
|
191
|
+
<div class="form-group">
|
192
|
+
|
193
|
+
<label for="rate">評価</label>
|
194
|
+
|
195
|
+
<%= f.select :rate, {'1' => 1, '2' => 2, '3' => 3, '4' => 4, '5' => 5}, class: "form-control" %>
|
196
|
+
|
197
|
+
</div>
|
198
|
+
|
199
|
+
</div>
|
200
|
+
|
201
|
+
<div class="post-contents">
|
202
|
+
|
203
|
+
<div class="form-group">
|
204
|
+
|
205
|
+
<label for="textarea">口コミを入力</label>
|
206
|
+
|
207
|
+
<%= f.text_area :content, class: "form-control", placeholder: "口コミ内容", rows: "10", onKeyUp: "countLength(value, 'textlength')" %>
|
208
|
+
|
209
|
+
<p>現在<span id="textlength">0文字</span></p>
|
210
|
+
|
211
|
+
</div>
|
212
|
+
|
213
|
+
</div>
|
214
|
+
|
215
|
+
<div class="post-photo">
|
216
|
+
|
217
|
+
<div class="form-group">
|
218
|
+
|
219
|
+
<label for="review_image">画像を投稿</label>
|
220
|
+
|
221
|
+
<%= f.fields_for :review_image do |review_image| %>
|
222
|
+
|
223
|
+
<%= review_image.file_field :image %>
|
224
|
+
|
225
|
+
<% end %>
|
226
|
+
|
227
|
+
</div>
|
228
|
+
|
229
|
+
</div>
|
230
|
+
|
231
|
+
<%= f.submit "更新する", class: "btn" %>
|
232
|
+
|
233
|
+
<% end %>
|
234
|
+
|
235
|
+
</div>
|
236
|
+
|
237
|
+
```
|