質問編集履歴

6

変更点、内容が全て保存出来ていなかった。

2021/01/16 11:38

投稿

YukiTani
YukiTani

スコア19

test CHANGED
File without changes
test CHANGED
@@ -198,7 +198,7 @@
198
198
 
199
199
  PASSWORD_REGEX = /\A(?=.*?[a-z])(?=.*?\d)[a-z\d]+\z/i.freeze
200
200
 
201
- validates_format_of :password, with: PASSWORD_REGEX, message: '英字と数字の両方を含めて設定してください'
201
+ validates_format_of :password, with: PASSWORD_REGEX, message: '英字と数字の両方を含めて設定してください', on: :create 
202
202
 
203
203
 
204
204
 
@@ -218,200 +218,10 @@
218
218
 
219
219
  ```
220
220
 
221
- (postモデル)念の為に記載
222
-
223
-
224
-
225
- ```rails
226
-
227
- class Post < ApplicationRecord
228
-
229
- validates :image, presence: true
230
-
231
-
232
-
233
- belongs_to :user
234
-
235
- has_one_attached :image
236
-
237
-
238
-
239
- end
240
-
241
- ```
242
-
243
-
244
-
245
- (gemファイル)
246
-
247
-
248
-
249
- ```rails
250
-
251
- gem 'devise'
252
-
253
- gem 'mini_magick'
254
-
255
- gem 'image_processing', '~> 1.2'
256
-
257
- gem 'pry-rails'
258
-
259
- gem "bulma-rails"
260
-
261
- gem "refile", require: "refile/rails", github: 'manfe/refile'
262
-
263
- gem "refile-mini_magick"
264
-
265
-
266
-
267
- ```
268
-
269
221
 
270
222
 
271
223
  ### 試したこと、
272
224
 
273
- edit, updateの記述の変更
274
-
275
- ```rails
276
-
277
-
278
-
279
- class UsersController < ApplicationController
280
-
281
- before_action :authenticate_user!, except: [:index]
282
-
283
- def index
284
-
285
- @users = User.all
286
-
287
- end
288
-
289
-
290
-
291
- def show
292
-
293
- @user = User.find(params[:id])
294
-
295
- end
296
-
297
-
298
-
299
- def edit
300
-
301
- end
302
-
303
-
304
-
305
- def update
306
-
307
- if current_user.update(user_params)
308
-
309
- redirect_to root_path
310
-
311
- else
312
-
313
- render :edit
314
-
315
- end
316
-
317
- end
318
-
319
-
320
-
321
- private
322
-
323
- def user_params
324
-
325
- params.require(:user).permit(:name, :email, :profile, :profile_image)
326
-
327
- end
328
-
329
- end
330
-
331
-
332
-
333
- ```
334
-
335
- ###デパックで、パスワード入力についていわれていたので、パスワード入力欄を追記
336
-
337
- model: current_userに@userから変更
338
-
339
- エラー画面なし、挙動に変化なし
340
-
341
- ```rails
342
-
343
-
344
-
345
-
346
-
347
- <%= form_with model: current_user, local: true do |f| %> %>
348
-
349
- <div class="field">
350
-
351
- <%= f.label :name, "ユーザー名", class: "label" %>
352
-
353
- <%= f.text_field :name, class: "input" %>
354
-
355
- </div>
356
-
357
-
358
-
359
- <div class="field">
360
-
361
- <%= f.label :email, "メールアドレス", class: "label" %>
362
-
363
- <%= f.email_field :email, class: "input" %>
364
-
365
- </div>
366
-
367
-
368
-
369
- <div class="field">
370
-
371
- <%= f.label :password, "パスワード", class: "label" %>
372
-
373
- <%= f.password_field :password, class: "input" %>
374
-
375
- </div>
376
-
377
- <div class="field">
378
-
379
- <%= f.label :password_confirmation, "2ndパスワード", class: "label" %>
380
-
381
- <%= f.password_field :password_confirmation, class: "input" %>
382
-
383
- </div>
384
-
385
-
386
-
387
- <div class="field">
388
-
389
- <%= f.label :profile, "プロフィール", class: "label" %>
390
-
391
- <%= f.text_area :profile, class: "textarea" %>
392
-
393
- </div>
394
-
395
-
396
-
397
- <div class="field">
398
-
399
- <%= f.label :profile_image, "プロフィール画像", class: "label" %>
400
-
401
- <%= f.attachment_field :profile_image, class: "input" %>
402
-
403
- </div>
404
-
405
-
406
-
407
- <%= f.submit "更新", class: "button is-success" %>
408
-
409
- <% end %>
410
-
411
-
412
-
413
- ```
414
-
415
225
 
416
226
 
417
227
  ###やりたいこと

5

変更点、内容が全て保存出来ていなかった。

2021/01/16 11:38

投稿

YukiTani
YukiTani

スコア19

test CHANGED
File without changes
test CHANGED
@@ -218,6 +218,28 @@
218
218
 
219
219
  ```
220
220
 
221
+ (postモデル)念の為に記載
222
+
223
+
224
+
225
+ ```rails
226
+
227
+ class Post < ApplicationRecord
228
+
229
+ validates :image, presence: true
230
+
231
+
232
+
233
+ belongs_to :user
234
+
235
+ has_one_attached :image
236
+
237
+
238
+
239
+ end
240
+
241
+ ```
242
+
221
243
 
222
244
 
223
245
  (gemファイル)

4

変更点、内容が全て保存出来ていなかった。

2021/01/16 09:46

投稿

YukiTani
YukiTani

スコア19

test CHANGED
@@ -1 +1 @@
1
- rails、投稿のupdateができない、更新できない
1
+ rails、Userの投稿のedit/updateができない
test CHANGED
@@ -176,11 +176,11 @@
176
176
 
177
177
 
178
178
 
179
-
179
+ (Userモデル)
180
-
181
-
182
-
180
+
181
+
182
+
183
- ```rails
183
+ ```rails
184
184
 
185
185
 
186
186
 
@@ -220,7 +220,7 @@
220
220
 
221
221
 
222
222
 
223
-
223
+ (gemファイル)
224
224
 
225
225
 
226
226
 
@@ -254,10 +254,6 @@
254
254
 
255
255
 
256
256
 
257
-
258
-
259
-
260
-
261
257
  class UsersController < ApplicationController
262
258
 
263
259
  before_action :authenticate_user!, except: [:index]
@@ -314,7 +310,7 @@
314
310
 
315
311
  ```
316
312
 
317
- #デパックで、パスワード入力についていわれていたので、パスワード入力欄を追記
313
+ ###デパックで、パスワード入力についていわれていたので、パスワード入力欄を追記
318
314
 
319
315
  model: current_userに@userから変更
320
316
 
@@ -418,10 +414,6 @@
418
414
 
419
415
 
420
416
 
421
-
422
-
423
-
424
-
425
417
  ### 補足情報(FW/ツールのバージョンなど)
426
418
 
427
419
 

3

変更点、内容が全て保存出来ていなかった。

2021/01/16 09:39

投稿

YukiTani
YukiTani

スコア19

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,47 @@
8
8
 
9
9
  updateがfalseになってしまう原因がわかりません。
10
10
 
11
-
11
+ ### デパック
12
+
13
+ ```rails
14
+
15
+ [1] pry(#<UsersController>)> params
16
+
17
+ => <ActionController::Parameters {"_method"=>"patch", "authenticity_token"=>"+KhzMcu9HQyw0VSFqTg08kxC6QJnsde9zIUnk09qLJpYathar8vtKRNB2qi8Nkzht8A1kttCTa0z1yY44ailtQ==", "user"=>{"name"=>"aaa", "email"=>"aa@gmail.com", "profile"=>"aaa", "profile_image"=>#<ActionDispatch::Http::UploadedFile:0x00007fda9b84ee50 @tempfile=#<Tempfile:/var/folders/cl/n5bbc7j97mv9y9bp0vxqfftw0000gn/T/RackMultipart20210116-94328-16jgiuj.png>, @original_filename="botanical.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"user[profile_image]\"; filename=\"botanical.png\"\r\nContent-Type: image/png\r\n">}, "commit"=>"更新", "controller"=>"users", "action"=>"update", "id"=>"2"} permitted: false>
18
+
19
+ [2] pry(#<UsersController>)> @user = User.find(params[:id])
20
+
21
+ User Load (18.5ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 2 LIMIT 1
22
+
23
+ ↳ (pry):5:in `update'
24
+
25
+ => #<User id: 2, email: "aaa@gmail.com", name: "aaa", profile_image_id: nil, profile: nil, created_at: "2021-01-15 12:44:56", updated_at: "2021-01-15 12:44:56">
26
+
27
+ [3] pry(#<UsersController>)> @user.valid?
28
+
29
+ => false
30
+
31
+ [4] pry(#<UsersController>)> @user.errors
32
+
33
+ => #<ActiveModel::Errors:0x00007fda93897018
34
+
35
+ @base=#<User id: 2, email: "aaa@gmail.com", name: "aaa", profile_image_id: nil, profile: nil, created_at: "2021-01-15 12:44:56", updated_at: "2021-01-15 12:44:56">,
36
+
37
+ @details={:password=>[{:error=>:invalid, :value=>nil}]},
38
+
39
+ @messages={:password=>["英字と数字の両方を含めて設定してください"]}>
40
+
41
+ [5] pry(#<UsersController>)> exit
42
+
43
+
44
+
45
+ ```
46
+
47
+
48
+
49
+ ![イメージ説明](c2296faad3ba2aa6a4ca49829d3c3402.png)
50
+
51
+ 仮説、updateメソッドは、元となる何かがあることが前提で、現状profile.imageなどがNULLだから、updateできなんでしょうか?
12
52
 
13
53
 
14
54
 
@@ -366,6 +406,10 @@
366
406
 
367
407
 
368
408
 
409
+ さまざまなサイトで、refile導入時のエラーなど、探してみましたが前例がなく、答えが導けず困っています。
410
+
411
+
412
+
369
413
  初学者ながら、画像を投稿できるウェブアプリケーションを作りたいと思い作っています。
370
414
 
371
415
  どうぞアドバイス宜しくお願いします。

2

変更点、内容が全て保存出来ていなかった。

2021/01/16 07:00

投稿

YukiTani
YukiTani

スコア19

test CHANGED
File without changes
test CHANGED
@@ -80,6 +80,64 @@
80
80
 
81
81
  ```
82
82
 
83
+ ```rails
84
+
85
+ <%= form_with model: @user, local: true do |f| %>
86
+
87
+ <div class="field">
88
+
89
+ <%= f.label :name, "ユーザー名", class: "label" %>
90
+
91
+ <%= f.text_field :name, class: "input" %>
92
+
93
+ </div>
94
+
95
+
96
+
97
+ <div class="field">
98
+
99
+ <%= f.label :email, "メールアドレス", class: "label" %>
100
+
101
+ <%= f.email_field :email, class: "input" %>
102
+
103
+ </div>
104
+
105
+
106
+
107
+ <div class="field">
108
+
109
+ <%= f.label :profile, "プロフィール", class: "label" %>
110
+
111
+ <%= f.text_area :profile, class: "textarea" %>
112
+
113
+ </div>
114
+
115
+
116
+
117
+ <div class="field">
118
+
119
+ <%= f.label :profile_image, "プロフィール画像", class: "label" %>
120
+
121
+ <%= f.attachment_field :profile_image, class: "input" %>
122
+
123
+ </div>
124
+
125
+
126
+
127
+ <%= f.submit "更新", class: "button is-success" %>
128
+
129
+ <% end %>
130
+
131
+
132
+
133
+
134
+
135
+ ```
136
+
137
+
138
+
139
+
140
+
83
141
 
84
142
 
85
143
  ```rails
@@ -122,6 +180,10 @@
122
180
 
123
181
 
124
182
 
183
+
184
+
185
+
186
+
125
187
  ```rails
126
188
 
127
189
  gem 'devise'
@@ -284,7 +346,7 @@
284
346
 
285
347
 
286
348
 
287
- <%= f.submit "Update", class: "button is-success" %>
349
+ <%= f.submit "更新", class: "button is-success" %>
288
350
 
289
351
  <% end %>
290
352
 

1

変更点、内容が全て保存出来ていなかった。

2021/01/16 06:54

投稿

YukiTani
YukiTani

スコア19

test CHANGED
File without changes
test CHANGED
@@ -10,16 +10,6 @@
10
10
 
11
11
 
12
12
 
13
- ### 発生している問題・エラーメッセージ
14
-
15
-
16
-
17
- ```
18
-
19
- エラーメッセージ
20
-
21
- ```
22
-
23
13
 
24
14
 
25
15
  ### 該当のソースコード (Userコントローラー)
@@ -86,17 +76,243 @@
86
76
 
87
77
  end
88
78
 
89
- ソースコード
90
-
91
- ```
92
-
93
-
94
-
95
- ### 試したこと
96
-
97
-
98
-
99
- ここに問題に対して試したことを記載してください。
79
+
80
+
81
+ ```
82
+
83
+
84
+
85
+ ```rails
86
+
87
+
88
+
89
+ class User < ApplicationRecord
90
+
91
+ # Include default devise modules. Others available are:
92
+
93
+ # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
94
+
95
+ devise :database_authenticatable, :registerable,
96
+
97
+ :recoverable, :rememberable, :validatable
98
+
99
+
100
+
101
+ PASSWORD_REGEX = /\A(?=.*?[a-z])(?=.*?\d)[a-z\d]+\z/i.freeze
102
+
103
+ validates_format_of :password, with: PASSWORD_REGEX, message: '英字と数字の両方を含めて設定してください'
104
+
105
+
106
+
107
+ validates :name, presence: true
108
+
109
+
110
+
111
+ has_many :posts
112
+
113
+ has_many :comments
114
+
115
+ attachment :profile_image
116
+
117
+ end
118
+
119
+
120
+
121
+ ```
122
+
123
+
124
+
125
+ ```rails
126
+
127
+ gem 'devise'
128
+
129
+ gem 'mini_magick'
130
+
131
+ gem 'image_processing', '~> 1.2'
132
+
133
+ gem 'pry-rails'
134
+
135
+ gem "bulma-rails"
136
+
137
+ gem "refile", require: "refile/rails", github: 'manfe/refile'
138
+
139
+ gem "refile-mini_magick"
140
+
141
+
142
+
143
+ ```
144
+
145
+
146
+
147
+ ### 試したこと、
148
+
149
+ edit, updateの記述の変更
150
+
151
+ ```rails
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+ class UsersController < ApplicationController
160
+
161
+ before_action :authenticate_user!, except: [:index]
162
+
163
+ def index
164
+
165
+ @users = User.all
166
+
167
+ end
168
+
169
+
170
+
171
+ def show
172
+
173
+ @user = User.find(params[:id])
174
+
175
+ end
176
+
177
+
178
+
179
+ def edit
180
+
181
+ end
182
+
183
+
184
+
185
+ def update
186
+
187
+ if current_user.update(user_params)
188
+
189
+ redirect_to root_path
190
+
191
+ else
192
+
193
+ render :edit
194
+
195
+ end
196
+
197
+ end
198
+
199
+
200
+
201
+ private
202
+
203
+ def user_params
204
+
205
+ params.require(:user).permit(:name, :email, :profile, :profile_image)
206
+
207
+ end
208
+
209
+ end
210
+
211
+
212
+
213
+ ```
214
+
215
+ #デパックで、パスワード入力についていわれていたので、パスワード入力欄を追記
216
+
217
+ model: current_userに@userから変更
218
+
219
+ エラー画面なし、挙動に変化なし
220
+
221
+ ```rails
222
+
223
+
224
+
225
+
226
+
227
+ <%= form_with model: current_user, local: true do |f| %> %>
228
+
229
+ <div class="field">
230
+
231
+ <%= f.label :name, "ユーザー名", class: "label" %>
232
+
233
+ <%= f.text_field :name, class: "input" %>
234
+
235
+ </div>
236
+
237
+
238
+
239
+ <div class="field">
240
+
241
+ <%= f.label :email, "メールアドレス", class: "label" %>
242
+
243
+ <%= f.email_field :email, class: "input" %>
244
+
245
+ </div>
246
+
247
+
248
+
249
+ <div class="field">
250
+
251
+ <%= f.label :password, "パスワード", class: "label" %>
252
+
253
+ <%= f.password_field :password, class: "input" %>
254
+
255
+ </div>
256
+
257
+ <div class="field">
258
+
259
+ <%= f.label :password_confirmation, "2ndパスワード", class: "label" %>
260
+
261
+ <%= f.password_field :password_confirmation, class: "input" %>
262
+
263
+ </div>
264
+
265
+
266
+
267
+ <div class="field">
268
+
269
+ <%= f.label :profile, "プロフィール", class: "label" %>
270
+
271
+ <%= f.text_area :profile, class: "textarea" %>
272
+
273
+ </div>
274
+
275
+
276
+
277
+ <div class="field">
278
+
279
+ <%= f.label :profile_image, "プロフィール画像", class: "label" %>
280
+
281
+ <%= f.attachment_field :profile_image, class: "input" %>
282
+
283
+ </div>
284
+
285
+
286
+
287
+ <%= f.submit "Update", class: "button is-success" %>
288
+
289
+ <% end %>
290
+
291
+
292
+
293
+ ```
294
+
295
+
296
+
297
+ ###やりたいこと
298
+
299
+ テスト環境です。
300
+
301
+ サインイン画面では、email,name,passwordだけの登録し、その後ユーザー詳細から編集と画像の追加
302
+
303
+ ができるようにしたいと思っています。しかしながら、現状フォームを入力して更新ボタンを押しても、dbに保存されるどころか、falseで返され、editのページに戻されてしまします。
304
+
305
+
306
+
307
+ 初学者ながら、画像を投稿できるウェブアプリケーションを作りたいと思い作っています。
308
+
309
+ どうぞアドバイス宜しくお願いします。
310
+
311
+
312
+
313
+
314
+
315
+
100
316
 
101
317
 
102
318