Rails3のモデルで logger すると NameError!
モデルというか ActiveModel::EachValidator を継承したクラス内で呼び出す logger が NameErrorになる。
[ruby]
NameError in XxxxController#xxxxxx
undefined local variable or method `logger' for #
[/ruby]
あれれと思ってぐぐってたら、以下の様な書き方をすれば良さそうなので書いておきます。
[ruby]
Rails.logger.debug "hogehoge"
[/ruby]あとついでに文字列で % を使った sprintf をよく忘れるのでメモ。
[ruby]
"%s-%s-%s 00:00:00"%(arg)
[/ruby]
arg は引数1個しかダメらしいので[]で括るなり。
Rubyのプログラムでsprintfを見る機会がほとんどない理由 - 仙台Rails牛タン社長
あと正規表現のざっくりとした使い方を。
[ruby]
unless date =~ (/^[1|2][0-9]{3}-[0|1][0-9]-[0-3][0-9] 00:00:00.{0,10}$/)
record.errors.add(attr, "は不正な値です。")
end
[/ruby]
イコールニョロです。まあこれらは validator 作ってる時に探した内容です。
主要メタ文字は以下で確認しました。
正規表現をWEBで確認できる rubular.com 便利です。
Railsの逆引きが非常に役に立ってるのでRubyの逆引きも買おうかな?(あるかな?探してない)
【送料無料】Ruby on Rails 3ポケットリファレンス [ 山田祥寛 ] |
いやーグーグル先生大活躍。