タグ

activesupportに関するsho75のブックマーク (2)

  • Railsと周辺のTimeZone設定を整理する (active_record.default_timezoneの罠) - Qiita

    まず、ここまでで一旦整理する。 Time.nowはRubyの組み込みなのでシステムのタイムゾーンしか見ない。OSの時間と常に一致する。Time.localの出力結果もOSのタイムゾーンと一致する。 TimeWithZoneクラスはconfig.time_zoneに左右される。 Ruby組み込みのメソッドで取得したUTCの時間を基準に、設定されているタイムゾーンの時間に変換する。 ActiveRecordのインスタンスに対してアクセサを利用して時間をやり取りする場合はTimeWithZoneで行われる。 仮にTimeクラスを渡しても代入時にTimeWithZoneに変換される。 config.active_record.default_timezoneの設定はDBを読み書きする際に、DBに記録されている時間をTime.utcで読むかTime.localで読むかを設定する。 :utcの場合DB

    Railsと周辺のTimeZone設定を整理する (active_record.default_timezoneの罠) - Qiita
  • try と try! の使い分け - Qiita

    a.try(:hoge) #=> nil a.try!(:hoge) #=> NoMethodError はーぁん、にゃーるほーどねー。 これ見て初めて気付いたのですが、 「try メソッドには 2 つの効用がある」 のですね。 a が nil の時、何もしない a に hoge が実装されてない時、何もしない 両方の効用を持つのが try 1 つ目の効用しか持たないのが try! というわけです。 2 つ目の効用も便利っちゃあ便利ですが、メソッド名を typo するとわかりづらいバグになることもありそうです。 実際 try を使うときは、レシーバ (上の例で a ) が nil かどうかで使う 1 つ目の効用を利用したい場合が殆どだと思われるので、積極的に try! を使っていくといいかと思います。 ruby2.3記念追記 rails にまず導入されたのが try で、その後、「NoMe

    try と try! の使い分け - Qiita
  • 1