Rails Tutorial 第9章完了


2020/7/19 0.5時間

2020/7/20 0.5時間

class methodがよく分からず、ネットで調べました。
https://magazine.rubyist.net/articles/0046/0046-SingletonClassForBeginners.html

2020/7/21 0.5時間

class methodの記法がなかなか理解できず時間がかかりました。

2020/7/22 0.5時間

「永続化」とは何のことか、ネットで調べました。データをディスクに保存することと理解しました。

2020/7/23 3.5時間

うまく動かず、デバッグしました。デバッガーを使いこなせず、PUTSを入れては進め、入れては進めでした。

2020/7/24 1.5時間

2020/7/25 2.0時間

午前中にやるのですが、途中眠気が襲ってきて寝てしまいました。

2020/7/26 1.0時間

上手く動かず、raiseで止められることは分かりました。ひたすらPUTSです。

2020/7/27 1.0時間

def で何も返さないとnilになることを理解するまで時間がかかりました。

2020/7/28 0.5時間

これで9章を完了しました。
所要時間は11.5時間です。

さらに難易度が上がり、時間がかかりました。特にデバッグにデバッガーを使わずPUTSでデバッグするのに時間がかかりました。

文字列'1'と数字の1の書き間違いでエラー

エラー

sessions_controller.rb
     params[:session][:remember_me] == 1 ? remember(user) : forget(user)

正しくは

sessions_controller.rb
     params[:session][:remember_me] == '1' ? remember(user) : forget(user)

でコンソールで確かめたところ、

console
>> 1 == '1'
=> false

と文字列と数字は違うと分かり、動かなかった原因が分かりました。

シンボルと文字列の使い分けが分からない

演習9.3.1
テストではなぜか
cookies[:xxx]
でなく
cookies['xxx']
とシンボルでなく文字列を使っています。

users_login_test.rb
 assert_equal cookies['remember_token'], assigns(:user).remember_token

どう使い分けているのか分かりませんでした。ネットで調べると、シンボルと文字列は同じように扱えて処理速度が違うとありました。