質問編集履歴

5

message_tag.rbの変更

2021/01/31 12:42

投稿

shunxile
shunxile

スコア26

test CHANGED
File without changes
test CHANGED
@@ -268,13 +268,13 @@
268
268
 
269
269
  def update
270
270
 
271
- @message = Message.create(title: title, whom: whom, open_plan: open_plan, message: message, images: images, video: video, user_id: user_id)
271
+ @message = Message.update(title: title, whom: whom, open_plan: open_plan, message: message, images: images, video: video, user_id: user_id)
272
272
 
273
273
  tag = Tag.find_or_create_by(name: name)
274
274
 
275
275
 
276
276
 
277
- @message_tag = MessageTagForm.create(message_id: message.id, tag_id: tag.id)
277
+ @message_tag = MessageTagForm.update(message_id: message.id, tag_id: tag.id)
278
278
 
279
279
  end
280
280
 

4

コントローラー・ビュー再編集

2021/01/31 12:42

投稿

shunxile
shunxile

スコア26

test CHANGED
File without changes
test CHANGED
@@ -150,9 +150,9 @@
150
150
 
151
151
  def edit
152
152
 
153
- @message_tag = Message.find(params[:id])
153
+ @message = Message.find(params[:id])
154
-
154
+
155
- if current_user.id != @message_tag.user.id
155
+ if current_user.id != @message.user.id
156
156
 
157
157
  redirect_to root_path
158
158
 
@@ -432,7 +432,7 @@
432
432
 
433
433
  <h1>残したい想い</h1>
434
434
 
435
- <%= form_with model: @message_tag, multipart: true, local: true do |f| %>
435
+ <%= form_with model: @message, multipart: true, local: true do |f| %>
436
436
 
437
437
  <%= render 'shared/error_messages', model: f.object %>
438
438
 

3

コントローラー内new、create、edit、update・edit.html.erb変更

2021/01/31 09:15

投稿

shunxile
shunxile

スコア26

test CHANGED
File without changes
test CHANGED
@@ -114,7 +114,7 @@
114
114
 
115
115
  def new
116
116
 
117
- @message = MessageTag.new
117
+ @message_tag = MessageTag.new
118
118
 
119
119
  end
120
120
 
@@ -122,11 +122,11 @@
122
122
 
123
123
  def create
124
124
 
125
- @message = MessageTag.new(message_params)
125
+ @message_tag = MessageTag.new(message_params)
126
-
126
+
127
- if @message.valid?
127
+ if @message_tag.valid?
128
-
128
+
129
- @message.save
129
+ @message_tag.save
130
130
 
131
131
  return redirect_to root_path
132
132
 
@@ -150,9 +150,43 @@
150
150
 
151
151
  def edit
152
152
 
153
+ @message_tag = Message.find(params[:id])
154
+
155
+ if current_user.id != @message_tag.user.id
156
+
157
+ redirect_to root_path
158
+
159
+ end
160
+
161
+ end
162
+
163
+
164
+
165
+ def update
166
+
153
167
  @message = Message.find(params[:id])
154
168
 
169
+ if @message_tag = MessageTag.new.update
170
+
171
+ return redirect_to root_path
172
+
173
+ else
174
+
175
+ render :edit
176
+
177
+ end
178
+
179
+ end
180
+
181
+
182
+
183
+ def destroy
184
+
185
+ @message = Message.find(params[:id])
186
+
155
- if current_user.id != @message.user.id
187
+ if current_user.id == @message.user.id
188
+
189
+ @message.destroy
156
190
 
157
191
  redirect_to root_path
158
192
 
@@ -162,119 +196,121 @@
162
196
 
163
197
 
164
198
 
199
+ private
200
+
201
+ def message_params
202
+
203
+ params.require(:message_tag).permit(:title, :whom, :message, :open_plan, :name, :video, images: []).merge(user_id: current_user.id)
204
+
205
+ end
206
+
207
+ end
208
+
209
+
210
+
211
+ ```
212
+
213
+ ```Ruby
214
+
215
+ message_tag.rb
216
+
217
+ class MessageTag
218
+
219
+
220
+
221
+ include ActiveModel::Model
222
+
223
+ include ActiveModel::Attributes
224
+
225
+ include ActiveRecord::AttributeAssignment
226
+
227
+ attr_accessor :title, :whom, :open_plan, :message, :images, :video, :name, :user_id
228
+
229
+
230
+
231
+ with_options presence: true, length: { maximum: 50 } do
232
+
233
+ validates :title
234
+
235
+ validates :whom
236
+
237
+ end
238
+
239
+
240
+
241
+ with_options presence: true do
242
+
243
+ validates :message, length: { maximum: 200 }
244
+
245
+ validates :open_plan
246
+
247
+ validates :user_id
248
+
249
+ validates :name, length: { maximum: 20 }
250
+
251
+ end
252
+
253
+
254
+
255
+ def save
256
+
257
+ @message = Message.create(title: title, whom: whom, open_plan: open_plan, message: message, images: images, video: video, user_id: user_id)
258
+
259
+ tag = Tag.find_or_create_by(name: name)
260
+
261
+
262
+
263
+ @message_tag = MessageTagForm.create(message_id: message.id, tag_id: tag.id)
264
+
265
+ end
266
+
267
+
268
+
165
269
  def update
166
270
 
271
+ @message = Message.create(title: title, whom: whom, open_plan: open_plan, message: message, images: images, video: video, user_id: user_id)
272
+
167
- @message = Message.find(params[:id])
273
+ tag = Tag.find_or_create_by(name: name)
168
-
274
+
275
+
276
+
169
- if @message = MessageTag.new.update
277
+ @message_tag = MessageTagForm.create(message_id: message.id, tag_id: tag.id)
170
-
171
- return redirect_to root_path
278
+
172
-
173
- else
174
-
175
- render :edit
176
-
177
- end
279
+ end
178
-
280
+
179
- end
281
+ end
180
-
181
-
182
-
183
- def destroy
184
-
185
- @message = Message.find(params[:id])
186
-
187
- if current_user.id == @message.user.id
188
-
189
- @message.destroy
190
-
191
- redirect_to root_path
192
-
193
- end
194
-
195
- end
196
-
197
-
198
-
199
- private
200
-
201
- def message_params
202
-
203
- params.require(:message_tag).permit(:title, :whom, :message, :open_plan, :name, :video, images: []).merge(user_id: current_user.id)
204
-
205
- end
206
-
207
- end
208
-
209
-
210
282
 
211
283
  ```
212
284
 
213
285
  ```Ruby
214
286
 
215
- message_tag.rb
287
+ message.rb
216
-
288
+
217
- class MessageTag
289
+ class Message < ApplicationRecord
290
+
218
-
291
+ belongs_to :user
292
+
219
-
293
+ has_many_attached :images
220
-
294
+
221
- include ActiveModel::Model
295
+ has_one_attached :video
296
+
222
-
297
+ has_many :message_tag_forms, dependent: :destroy
298
+
299
+ has_many :tags, through: :message_tag_forms
300
+
301
+
302
+
303
+ def self.search(search, id)
304
+
223
- include ActiveModel::Attributes
305
+ if search != ""
224
-
225
- include ActiveRecord::AttributeAssignment
306
+
226
-
227
- attr_accessor :title, :whom, :open_plan, :message, :images, :video, :name, :user_id
307
+ Item.joins(:tags).where(tags: {name: "#{search}"} , user_id: id)
228
-
229
-
230
-
308
+
231
- with_options presence: true, length: { maximum: 50 } do
309
+ else
232
-
310
+
233
- validates :title
311
+ Item.where(user_id: id)
234
-
235
- validates :whom
312
+
236
-
237
- end
313
+ end
238
-
239
-
240
-
241
- with_options presence: true do
242
-
243
- validates :message, length: { maximum: 200 }
244
-
245
- validates :open_plan
246
-
247
- validates :user_id
248
-
249
- validates :name, length: { maximum: 20 }
250
-
251
- end
252
-
253
-
254
-
255
- def save
256
-
257
- @message = Message.create(title: title, whom: whom, open_plan: open_plan, message: message, images: images, video: video, user_id: user_id)
258
-
259
- tag = Tag.find_or_create_by(name: name)
260
-
261
-
262
-
263
- @message_tag = MessageTagForm.create(message_id: message.id, tag_id: tag.id)
264
-
265
- end
266
-
267
-
268
-
269
- def update
270
-
271
- @message = Message.create(title: title, whom: whom, open_plan: open_plan, message: message, images: images, video: video, user_id: user_id)
272
-
273
- tag = Tag.find_or_create_by(name: name)
274
-
275
-
276
-
277
- @message_tag = MessageTagForm.create(message_id: message.id, tag_id: tag.id)
278
314
 
279
315
  end
280
316
 
@@ -284,35 +320,17 @@
284
320
 
285
321
  ```Ruby
286
322
 
287
- message.rb
323
+ tag.rb
288
-
324
+
289
- class Message < ApplicationRecord
325
+ class Tag < ApplicationRecord
290
-
291
- belongs_to :user
326
+
292
-
293
- has_many_attached :images
294
-
295
- has_one_attached :video
296
-
297
- has_many :message_tag_forms, dependent: :destroy
298
-
299
- has_many :tags, through: :message_tag_forms
327
+ has_many :messages, through: :message_tag_forms
300
-
301
-
302
-
303
- def self.search(search, id)
328
+
304
-
305
- if search != ""
329
+ has_many :message_tag_forms
306
-
307
- Item.joins(:tags).where(tags: {name: "#{search}"} , user_id: id)
330
+
308
-
309
- else
331
+
310
-
332
+
311
- Item.where(user_id: id)
333
+ validates :name, uniqueness: true
312
-
313
- end
314
-
315
- end
316
334
 
317
335
  end
318
336
 
@@ -320,17 +338,11 @@
320
338
 
321
339
  ```Ruby
322
340
 
323
- tag.rb
324
-
325
- class Tag < ApplicationRecord
341
+ class MessageTagForm < ApplicationRecord
326
-
327
- has_many :messages, through: :message_tag_forms
342
+
328
-
329
- has_many :message_tag_forms
343
+ belongs_to :message
330
-
331
-
332
-
344
+
333
- validates :name, uniqueness: true
345
+ belongs_to :tag
334
346
 
335
347
  end
336
348
 
@@ -338,11 +350,75 @@
338
350
 
339
351
  ```Ruby
340
352
 
353
+ class CreateTags < ActiveRecord::Migration[6.0]
354
+
355
+ def change
356
+
357
+ create_table :tags do |t|
358
+
359
+ t.string :name, null:false, uniqueness: true
360
+
361
+ t.timestamps
362
+
363
+ end
364
+
365
+ end
366
+
367
+ end
368
+
369
+
370
+
371
+
372
+
373
+
374
+
375
+ class CreateMessages < ActiveRecord::Migration[6.0]
376
+
377
+ def change
378
+
379
+ create_table :messages do |t|
380
+
381
+ t.string :title, null: false
382
+
383
+ t.string :whom, null: false
384
+
385
+ t.text :message, null: false
386
+
387
+ t.date :open_plan, null: false
388
+
389
+ t.string :encrypted_password
390
+
391
+ t.references :user, null: false
392
+
393
+ t.timestamps
394
+
395
+ end
396
+
397
+ end
398
+
399
+ end
400
+
401
+
402
+
403
+
404
+
405
+
406
+
341
- class MessageTagForm < ApplicationRecord
407
+ class CreateMessageTagForms < ActiveRecord::Migration[6.0]
408
+
342
-
409
+ def change
410
+
343
- belongs_to :message
411
+ create_table :message_tag_forms do |t|
412
+
344
-
413
+ t.references :message, foreign_key: true
414
+
415
+ t.references :tag, foreign_key: true
416
+
345
- belongs_to :tag
417
+ t.timestamps
418
+
419
+ end
420
+
421
+ end
346
422
 
347
423
  end
348
424
 
@@ -350,89 +426,13 @@
350
426
 
351
427
  ```Ruby
352
428
 
353
- class CreateTags < ActiveRecord::Migration[6.0]
354
-
355
- def change
356
-
357
- create_table :tags do |t|
358
-
359
- t.string :name, null:false, uniqueness: true
360
-
361
- t.timestamps
362
-
363
- end
364
-
365
- end
366
-
367
- end
368
-
369
-
370
-
371
-
372
-
373
-
374
-
375
- class CreateMessages < ActiveRecord::Migration[6.0]
376
-
377
- def change
378
-
379
- create_table :messages do |t|
380
-
381
- t.string :title, null: false
382
-
383
- t.string :whom, null: false
384
-
385
- t.text :message, null: false
386
-
387
- t.date :open_plan, null: false
388
-
389
- t.string :encrypted_password
390
-
391
- t.references :user, null: false
392
-
393
- t.timestamps
394
-
395
- end
396
-
397
- end
398
-
399
- end
400
-
401
-
402
-
403
-
404
-
405
-
406
-
407
- class CreateMessageTagForms < ActiveRecord::Migration[6.0]
408
-
409
- def change
410
-
411
- create_table :message_tag_forms do |t|
412
-
413
- t.references :message, foreign_key: true
414
-
415
- t.references :tag, foreign_key: true
416
-
417
- t.timestamps
418
-
419
- end
420
-
421
- end
422
-
423
- end
424
-
425
- ```
426
-
427
- ```Ruby
428
-
429
429
  edit.html.erb
430
430
 
431
431
  <div class="new-message">
432
432
 
433
433
  <h1>残したい想い</h1>
434
434
 
435
- <%= form_with model: @message, url: message_path(@message.id), method: :patch, multipart: true, local: true do |f| %>
435
+ <%= form_with model: @message_tag, multipart: true, local: true do |f| %>
436
436
 
437
437
  <%= render 'shared/error_messages', model: f.object %>
438
438
 

2

モデル・db追加

2021/01/31 09:04

投稿

shunxile
shunxile

スコア26

test CHANGED
File without changes
test CHANGED
@@ -284,6 +284,148 @@
284
284
 
285
285
  ```Ruby
286
286
 
287
+ message.rb
288
+
289
+ class Message < ApplicationRecord
290
+
291
+ belongs_to :user
292
+
293
+ has_many_attached :images
294
+
295
+ has_one_attached :video
296
+
297
+ has_many :message_tag_forms, dependent: :destroy
298
+
299
+ has_many :tags, through: :message_tag_forms
300
+
301
+
302
+
303
+ def self.search(search, id)
304
+
305
+ if search != ""
306
+
307
+ Item.joins(:tags).where(tags: {name: "#{search}"} , user_id: id)
308
+
309
+ else
310
+
311
+ Item.where(user_id: id)
312
+
313
+ end
314
+
315
+ end
316
+
317
+ end
318
+
319
+ ```
320
+
321
+ ```Ruby
322
+
323
+ tag.rb
324
+
325
+ class Tag < ApplicationRecord
326
+
327
+ has_many :messages, through: :message_tag_forms
328
+
329
+ has_many :message_tag_forms
330
+
331
+
332
+
333
+ validates :name, uniqueness: true
334
+
335
+ end
336
+
337
+ ```
338
+
339
+ ```Ruby
340
+
341
+ class MessageTagForm < ApplicationRecord
342
+
343
+ belongs_to :message
344
+
345
+ belongs_to :tag
346
+
347
+ end
348
+
349
+ ```
350
+
351
+ ```Ruby
352
+
353
+ class CreateTags < ActiveRecord::Migration[6.0]
354
+
355
+ def change
356
+
357
+ create_table :tags do |t|
358
+
359
+ t.string :name, null:false, uniqueness: true
360
+
361
+ t.timestamps
362
+
363
+ end
364
+
365
+ end
366
+
367
+ end
368
+
369
+
370
+
371
+
372
+
373
+
374
+
375
+ class CreateMessages < ActiveRecord::Migration[6.0]
376
+
377
+ def change
378
+
379
+ create_table :messages do |t|
380
+
381
+ t.string :title, null: false
382
+
383
+ t.string :whom, null: false
384
+
385
+ t.text :message, null: false
386
+
387
+ t.date :open_plan, null: false
388
+
389
+ t.string :encrypted_password
390
+
391
+ t.references :user, null: false
392
+
393
+ t.timestamps
394
+
395
+ end
396
+
397
+ end
398
+
399
+ end
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+ class CreateMessageTagForms < ActiveRecord::Migration[6.0]
408
+
409
+ def change
410
+
411
+ create_table :message_tag_forms do |t|
412
+
413
+ t.references :message, foreign_key: true
414
+
415
+ t.references :tag, foreign_key: true
416
+
417
+ t.timestamps
418
+
419
+ end
420
+
421
+ end
422
+
423
+ end
424
+
425
+ ```
426
+
427
+ ```Ruby
428
+
287
429
  edit.html.erb
288
430
 
289
431
  <div class="new-message">

1

誤字

2021/01/30 09:39

投稿

shunxile
shunxile

スコア26

test CHANGED
File without changes
test CHANGED
@@ -432,7 +432,7 @@
432
432
 
433
433
  Request
434
434
 
435
- PParameters:
435
+ Parameters:
436
436
 
437
437
 
438
438
 
@@ -456,10 +456,16 @@
456
456
 
457
457
  参考記事
458
458
 
459
+
460
+
459
461
  https://teratail.com/questions/291532
460
462
 
463
+
464
+
461
465
  https://qiita.com/Tiima/items/b14c73df98d0465cbb52
462
466
 
467
+
468
+
463
469
  https://qiita.com/divclass123/items/34c4a5a7200238a0589c
464
470
 
465
471