雑メモ帳
まとめ方を気にしている余裕がなくなったので、覚書として簡単にメモしておきます。
雑にどんどん追加していきます。
gitでcommit間の差分を出力する
経緯
課題デバッグでHTMLを不必要にいじって表示が乱れてしまったので、どこが原因でおかしくなったのか調べたい。バグに気がついたのがだいぶ後だったため、過去のコミット間の差分を調べる必要がある。
二つのcommit間の差分を出力する
git logで当該箇所のコミットIDを調べ、下記コマンドで差分をチェックできる。
git diff <コミットID1> <コミットID2>
Time.nowとTime.current
結論:Time.currentを使った方がいい
[4] pry(main)> Time.now => 2022-04-23 16:22:59 +0900 [5] pry(main)> Time.current => Sat, 23 Apr 2022 16:23:04 JST +09:00
Time.nowは環境変数(ENV['TZ]')もしくはシステムのタイムゾーンをもとに現在時刻を取得しており、デフォルト設定で環境変数の値はnil。このためアメリカ時刻になっているシステムのタイムゾーンを参照してしまう。
Time.currentはシステムのタイムゾーンに左右されず、Railsアプリごとにapplication.rbに設定したタイムゾーンを参照してくれるので、コンソール上で確認してみると日本時刻で表示されている。
【Rails】Time.currentとTime.nowの違い - Qiita
DateTime
DateTimeは非推奨らしいので、特別な理由がなければTIimeクラスを使う。
より詳しい記事
RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い - Qiita
Capybara click_onについて
click_onはclick_buttonとclick_linkのエイリアス
これはもう全部click_onでいいのでは🙄
と思っていたけど下記のような場合はclick_onで上手くクリックすることができないらしい。
#<button class="cssClassName">ボタン名</button> # このような場合は押せる click_on "ボタン名" #<button class="cssClassName"><i xxxx />ボタン名</button> #<button class="cssClassName">ボタン名(1)</button> # こんな感じだタグ内の値だとうまくいかない # click_on "ボタン名"
Rspec Capybaraで実際テストを書いて困ったシチュエーションの解消法 - Qiita
範囲演算子
経緯
昨日(終日)中に公開された記事を取得したい。
下記のように記述したけれど、実際もっとスマートな書き方があるかも知れない。
@articles_published_yesterday = Article.where(published_at: Time.zone.now.yesterday.beginning_of_day..Time.zone.now.yesterday.end_of_day)
beginning_of_day
とend_of_day
でその日の始まりとその日の終わりを取得..
か...
で範囲を指定できる..
は素直に〇〇から〇〇まで...
の場合は終端を含まないSQLが発行されている
ActiveRecordで日付・時刻の範囲検索をシンプルに書く方法|TechRacho by BPS株式会社
whenverの設定
これに関しては理解できていない箇所がかなり多い。
- cronは.zshとrbenvの環境で動いてくれないらしいので、シェルコマンドの設定と.zshrcとrbenvのPATHを設定で通す必要がある
[Rails4] wheneverを使ってcrontabを管理して、cronを回す - Qiita
remoteの設定で出たエラー
No such remote 'origin'