質問編集履歴

2

コントローラーおよび、エラーメッセージを追記しました

2017/08/15 08:19

投稿

yamady
yamady

スコア176

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
- ```Ruby
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
- @post = current_user.reviews.build
195
+ @review = current_user.reviews.build
74
-
196
+
75
- @post.build_review_image
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

ビューを追記しました

2017/08/15 08:19

投稿

yamady
yamady

スコア176

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
+ ```