deviseのskip confirmationの話
Railsのdeviseの話です。 deviseは使わない派、deviseは悪派な人も多いですが、deviseの標準的な範囲で使えそうならとりあえず使っちゃう派です。まあ、その辺の論争は置いといて。 (ユーザーを一括作成するなど)都合により認証メールを送らないでいるための方法と、認証メールとか関係なく認証済にしてしまう方法、それぞれ別の手段が提供されています。
Railsのdeviseの話です。 deviseは使わない派、deviseは悪派な人も多いですが、deviseの標準的な範囲で使えそうならとりあえず使っちゃう派です。まあ、その辺の論争は置いといて。 (ユーザーを一括作成するなど)都合により認証メールを送らないでいるための方法と、認証メールとか関係なく認証済にしてしまう方法、それぞれ別の手段が提供されています。
ユーザーにアバター画像(プロフィール画像)を登録してもらうサービスの場合、画像未登録のユーザー用にデフォルトの画像を用意することがあると思います。 グレー背景のシルエットとか、Googleのイニシャル(漢字なら最初の一文字)、Twitterのたまごとか、Slackの模様とか、いろいろなパターンがありますね。
order、つけ忘れがちですよね。環境が変わると思ってた順番に出なかったりします。 更に厄介なのは、つけ忘れてもなんとなく正しい順番で動いているときで、何かのタイミングで思った順ではなくなってしまうことがあります。というかありました。
オープンではないサービスのAPIを使うとき、APIクライアントが無いってことが多いです。なのでアプリケーションから使いたいAPIだけを叩くような簡易なAPIクライアントを自分で書きます。そのときはrest-clientあたりを使ってベタっと書いてしまうことがほとんどです。
Rubyでxlsxファイルを読めるrooというgemでエクセルを読んでいる箇所がエラーになるようになりました。 しかもローカル環境のMacでのみ発生し、AWSのAmazonLinuxやUbuntu上では問題なく動くという罠っぷり。これのおかげでだいぶハマりました。 問題のはS3上に置いたエクセルをRubyで開こうとしたときで、コードはだいたいこんな感じでした。
だいぶ前からGitHubにて、プロジェクトが利用するGemfileの脆弱性を判定してくれるようになっています。 参考までに僕が2年以上前にコミットしたサンプルプロジェクトを見てみます。 ちなみに脆弱性の情報は対象のリポジトリの権限をもっていないと表示されません。
電話番号を単に数字とハイフンの並びと見るだけであればまだいいのですが、真面目に扱おうとすると割と面倒です。 幸い、Googleのlibphonenumberやそれをバリデーション用にラップしたtelephone_numberというgemがあるので、それらを活用すると簡単に扱えるはずです。
アップロードファイルのサイズやcontent_typeなど、制限する場合があると思います。標準のvalidatorでは足りないので、自前で書いたり、carrierwaveなんかであればuploaderに制限を書いたりします。
フリーメールで登録できないようにしたい、という要望に答えるためにfreemailというgemを使いました。 https://github.com/smudge/freemail このgemはフリーメールのリストを管理していて、該当するかメールアドレスかどうかを判定してくれます。ある程度のリストが最初からあって自分で用意する必要がないというのが良いところです。
メール送るときにプレフィックスつけたいときあるじゃないですか。サービス名だったり、ステージング用でテストするためのメールだったり。 で、1個1個subjectに設定するのは面倒だし忘れてしまいがちなので、email_prefixerを使っています。