質問編集履歴

1

追記、修正

2017/12/18 12:58

投稿

kku65614
kku65614

スコア6

test CHANGED
File without changes
test CHANGED
@@ -24,11 +24,11 @@
24
24
 
25
25
  0. obj変数に、`MyDataクラス`でオブジェクトにした(**←なぜこうするのか、理解できていない**)投稿内容を入れる
26
26
 
27
- 0. `@dengon_data`に投稿があった時間をキーとして2で作ったオブジェクトを入れる
27
+ 0. `@dengon_data`に投稿があった時間をキーとして手順2で作ったオブジェクトを入れる
28
28
 
29
29
  0. `data.txt`に新しく投稿された内容を含めたデータを入れるために`@dengon_data`を`to_json`でJSON形式の文字列にする
30
30
 
31
- 0. `data.txt`の内容を更新する
31
+ 0. `File.write`を使い、`data.txt`の内容を更新する
32
32
 
33
33
  0. `JSON.parse(data)`でJSONを`@dengon_data`に代入(**なぜ`@dengon_data`のままではいけないのか、理解できない**)
34
34
 
@@ -406,6 +406,10 @@
406
406
 
407
407
 
408
408
 
409
+ これを試した結果、JSON形式にしたり、それを文字列にしたり戻したりしていてややこしいため、何をしているのか理解しきることができないのかなと考えています。
410
+
411
+
412
+
409
413
 
410
414
 
411
415
 
@@ -416,4 +420,122 @@
416
420
 
417
421
 
418
422
 
423
+
424
+
425
+ ## 追記
426
+
427
+
428
+
429
+ ### 書籍のソースコード
430
+
431
+ 上記のソースコードは私が書籍のコードを理解するために色々な編集を加えたものでした。質問と回答の食い違いを防ぐために、追記として書籍のコードを記述させていただきます。ここに記述されていないファイルのものは、上記と同じ内容のものです。
432
+
433
+
434
+
435
+ `MyDataクラス`の`initializeメソッド`について、後述の私が参考にしている書籍で使用されるRubyのバージョンでは警告が発生しますが、これが書籍に載っている内容であることをあらかじめご理解お願いします。
436
+
437
+ **dengonban_controller.rb**
438
+
439
+ ```Ruby
440
+
441
+ class DengonbanController < ApplicationController
442
+
443
+ layout "dengonban"
444
+
445
+
446
+
447
+ def initialize
448
+
449
+ super
450
+
451
+
452
+
453
+ begin
454
+
455
+ @dengon_data = JSON.parse(File.read("data.txt"))
456
+
457
+ rescue
458
+
459
+ @dengon_data = Hash.new
460
+
461
+ end
462
+
463
+
464
+
465
+ @dengon_data.each do |key, obj|
466
+
467
+ if Time.now.to_i - key.to_i > 24*60*60 then
468
+
469
+ @dengon_data.delete(key)
470
+
471
+ end
472
+
473
+ end
474
+
475
+
476
+
477
+ File.write("data.txt", @dengon_data.to_json)
478
+
479
+
480
+
481
+ end
482
+
483
+
484
+
485
+ def index
486
+
487
+ if request.post?
488
+
489
+ obj = MyData.new(msg: params["msg"], name: params["name"], mail: params["mail"])
490
+
491
+ @dengon_data[Time.now.to_i] = obj
492
+
493
+ data = @dengon_data.to_json
494
+
495
+ File.write("data.txt", data)
496
+
497
+ @dengon_data = JSON.parse(data)
498
+
499
+ end
500
+
501
+ end
502
+
503
+ end
504
+
505
+
506
+
507
+ class MyData
508
+
509
+ attr_accessor(:name)
510
+
511
+ attr_accessor(:mail)
512
+
513
+ attr_accessor(:msg)
514
+
515
+
516
+
517
+ def initialize msg: msg, name: name, mail: mail
518
+
519
+ self.name = name
520
+
521
+ self.mail = mail
522
+
523
+ self.msg = msg
524
+
525
+ end
526
+
527
+ end
528
+
529
+ ```
530
+
531
+
532
+
533
+ ### 書籍のタイトルについて
534
+
535
+ 「質問への追記・修正、ベストアンサー選択の依頼」にて質問がありました、参考にしている書籍のタイトルについてですが、私が参考にしている書籍は「[**Ruby on Rails 5 超入門**](https://www.amazon.co.jp/Ruby-Rails-5-%E8%B6%85%E5%85%A5%E9%96%80-%E6%8E%8C%E7%94%B0%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798048321)」という書籍で、発行日が**2016年12月20日**のものです。
536
+
537
+
538
+
539
+
540
+
419
541
  どうか、よろしくお願いします