質問編集履歴
1
追記、修正
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
|
どうか、よろしくお願いします
|