PIYO - Tech & Life -

Rails

deviseのskip confirmationの話

Railsのdeviseの話です。 deviseは使わない派、deviseは悪派な人も多いですが、deviseの標準的な範囲で使えそうならとりあえず使っちゃう派です。まあ、その辺の論争は置いといて。 (ユーザーを一括作成するなど)都合により認証メールを送らないでいるための方法と、認証メールとか関係なく認証済にしてしまう方法、それぞれ別の手段が提供されています。

Railsで指定したID列順にorderするには

複数のIDの配列でwhereしたあと、そのIDの配列の順番の通りにorderしたいという場合がたまーにあります。2年に1回ぐらいあります。 実際に必要になったときの機能要件はうまく伝えられないんですが、こんな感じの意味です。

real-world-railsでOSSのRailsアプリケーションを探す

real-world-railsっていうリポジトリにOSSのRailsアプリケーションがまとめられています。 https://github.com/eliotsykes/real-world-rails リンク集じゃなくて全部サブモジュールになってて一気にクローンできちゃいます。やる必要ないけど。

Railsのjs-routesをWebpackerでも使うには

Railsのjs-routesgemはクライアントサイドでURLヘルパーを使えるようにできるgemで、大変便利です。 Gemfileにgem "js-routes"を書いてインストールしたうえで、asset pipelineのapplication.jsあたりでrequire js-routesとしておきます。すると、Rails側で使えるuser_path(@user.id)み …

RubyでGmail風プロフィール画像を生成するinitial_avatarでユーザーを識別しやすくする

ユーザーにアバター画像(プロフィール画像)を登録してもらうサービスの場合、画像未登録のユーザー用にデフォルトの画像を用意することがあると思います。 グレー背景のシルエットとか、Googleのイニシャル(漢字なら最初の一文字)、Twitterのたまごとか、Slackの模様とか、いろいろなパターンがありますね。

Railsにてファイルのインポート処理をActiveJob化する

元々はFormオブジェクトでインポートするだけだったんですが、ファイルサイズが大きすぎてHerokuのタイムアウトを食らうケースが現れたのでバックグラウンドに回しました。 その際、ファイルActiveJobに渡す方法を考えなければなりません。ファイルのオブジェクトの形では当然渡せないし、かと言ってローカルにファイルを置いてそのPathを渡す形にしたとしても、dynoが複数ある場合には参照できなくな …