AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

Rails

fontawesome-6.5.2 インストール時に oj が無いと言われて怒られ続けた

メモが見つかったので思い出しつつ書いてみる。

最近の macOS で port 5000 は利用できない

定期的に忘れるので書いておくことにする。 Error response from daemon: Ports are not available: listen tcp 0.0.0.0:5000: bind: address already in use port 5000 は Airplay レシーバーが使っている こういうことらしい。 zenn.dev Monterey 以降は占…

Rails ガイドが mise をおすすめにしていた (インストールガイドのページを新しく作っていた)

www.hsbt.org 「へーっ」と思って調べてみたら、 Rails ガイド本文から Ruby のインストール方法そのものの記述が消えて、独立したページになったんすねえ。 railsguides.jp v8 から生まれた 上記の「Ruby on Rails インストールガイド」、v8 対応版から導線…

rails console のオートコンプリートを切る

bundle exec rails c(onsole) になんかオプション渡せばいいのかな、と思ったら、 .irbrc で制御する必要があるらしい。 IRB.conf[:USE_AUTOCOMPLETE] = false IRB.conf[:SAVE_HISTORY] = nil オートコンプリート、普段は便利なんだけど、運用環境とかで con…

RoR を Fargate で動かしていて Cloudwatch Event などに登録されていないのに cron 的な定期ジョブが動いていて何だこれは? と思ったら sidekiq-scheduler だった

タイトルがすべてです。 sidekiq-scheduler? こちらです。 github.com sidekiq-scheduler is an extension to Sidekiq that pushes jobs in a scheduled way, mimicking cron utility. とのことで、 cron のような動作を Rails+Sidekiq の恩恵受けつつやる…

AmazonLinux2023 で Passenger をインストール時に cURL がコケる

このようにError: Cannot find thecurl-configcommand. なるのを解決する。 Checking for required software... * Checking for C compiler... Found: yes Location: /usr/bin/cc * Checking for C++ compiler... Found: yes Location: /usr/bin/c++ * Check…

MySQL 8.3/8.4 と mysql2 0.5.6

qiita.com あーなるほどね! となっていた。 日本語での解説は以下の記事がよさそうかな? gihyo.jp 実際に変更、というか削除されたのは以下。 dev.mysql.com とりあえず雑に MySQL 8.3 以降を使う場合は mysql2 0.5.6 を使いましょう! という話。 そうで…

Rails で扱える (環境変数に出して大丈夫な) 特殊記号

稀に設定したらぶっ壊れて「うーん?」となっていたのだけど、ようやく調べた。 sinsoku.hatenablog.com 世の中には先人がいるので本当ありがてえ。 使える記号 !$&*()-_=+: 上記だけっぽいので、その範囲でやっておけばよさそう。 ちなみに pwgen で毎回パ…

rails console で利用できるモデルの表示

console から .find_by(id: 1) とかして見えないモデルがあってうーん?と思っていたんだけど、単純にモデルがないだけだった。 以下のようにすることで、扱えるモデル一覧が出力できる。 tables = ActiveRecord::Base.connection.tables tables.map(&:class…

AppleSillicon で古い Ruby を build する その3

せっかくなので、Rails 5.1 の古いプロジェクトで実際に Ruby 2.5 を動かせるか試してみた。 僕の場合の対応なので、個々のプロジェクトでは異なると思いますが、こんな古いバージョン使う以上自己責任だよ自己責任! という気持ちで参考情報として見てくだ…

ActionMailer でメール送信時に利用する情報を動的に変更する

qiita.com /config/environments/ 以下で config.action_mailer.smtp_settings で指定した情報を、送信するタイミングで上書きできる。 ただこれ見てると、送信時に上書きするのでたくさん送ると負荷高くなりそーだな、という気はしている。 railsguides.jp …

NullDB not configured. Require a framework, ex 'nulldb/rails'

huh?

homebrew 環境で bundle install しても mysql2 がインストールできない時

macOS 13.6.4 Homebrew MySQL 8.2.0.1 小さい結論 .bundle/config に以下を書く。 BUNDLE_BUILD__MYSQL2: "--with-mysql-lib=/opt/homebrew/opt/mysql/lib --with-mysql-dir=/opt/homebrew/opt/mysql --with-mysql-config=/opt/homebrew/opt/mysql/bin/mysql…

ActiveStorage の blob key で付与される値を変更する

調べたらやってる人はいるもんだった。 qiita.com 本当はこれはこれで Unique が保証されるままにしておいて、 類推できるように意味をもたせた URL にしたい場合は、所謂スラグとかパーマリンク的に扱うのがいいんだろうか。 と思ったけど、結局ダウンロー…

incompatible library version

EDITOR=vi rails credentials:edit とかしたら表題の通り怒られた、んだけど、なんでやねんと考えていたら「そういやこの環境、ワイの知らないの間に Ruby のマイナーバージョンアップデートされてたな」と気付いて rm -rf ./vendor/bundle bundle install -…

Rails の一ヶ月

ビジネスロジックでの判定で、いわゆる「一ヶ月前」という実装を愚直に 1.month.ago (ago(1.month)) などとした場合。 「これは当日を含むのか」とか「一ヶ月って30日?」「例えば閏年で 1/30 から一ヶ月後って 2/29 と 3/1 どっち? 一ヶ月前になると逆パタ…

unicorn -> pitchfork

railsatscale.com へー、と思いながら見ていた。 Pitchfork JIT 有効にした環境なら Unicorn よりよさそうな風情は感じるけど、まだ 0.9.0 らしいので GA なりメジャーバージョンに到達するまで様子を見ましょう。 一応「Puma (thread 形式のアプリケーショ…

HomeBrew のアップデートで MySQL 8.1.0 がインストールされて俺の Rails が壊れた

俺の、って書いておかないとマサカリ飛んできそうなので。

ActiveStorage は ActiveRecord が必要

どういうこっちゃ兄弟、という話だけど、要は mongoid 利用環境で ActiveStorage 採用しようとしたんだけど仕様的にダメだった、という話。 github.com feel free to send PRs. https://github.com/rails/rails/issues/31408#issuecomment-351128111 気軽に …

puma の最適化

ここの続き。 donbulinux.hatenablog.jp 基本的にまず以下を読むといい。 翻訳されているので、だいたい抑えるべきことが書いてある。 techracho.bpsinc.jp その後に以下を。 re-engines.com qiita.com tech-book.precena.co.jp 具体的にどうする とりあえず…

rails console から生の SQL クエリを実行する

User.find みたいにできたらまあそれはそうなんだけど、 model がないと実行できないので生 SQL を実行する。 まず model がないってなんだよ、と言われたら無いもんはないので……。 ActiveRecord::Base.connection.select_all('SQL を書く').to_hash 例 こん…

flipper

github.com はえーしらなかった、こういうのあるんすねえ。 機能の簡単なスイッチ、自分で作るかこういうヤツ採用するかは最近話題のこういう問題もあるのでなんとも、だけども。 コンテナとかで手元の環境は console から流し込めばいい、みたいなのは分か…

assets:precompile で No such middleware to insert before: ActionDispatch::Static

GithubActions でビルド回してたんだけど、 PR 積んだブランチをビルドしたら遭遇した。 結論から書くと、 RAILS_SERVE_STATIC_FILES=true を precompile 時に追加すれば回避できる。 RackBasicAuth の追加 リリース直前になって「フライング利用するユーザ…

propshaft ことはじめを適当に考えている

本業があまりに疲れすぎて何も考えたくないので、休憩を兼ねて以下をボーッと見ていた。 re-engines.com techracho.bpsinc.jp このあたりが注意しないといけないかな。 アセットヘルパー :%s/image_url('/url('\/g みたいな感じで雑に修正していけばよさそう…

Rails の delivery_method で AWS SES を指定してメール送信する

だいぶ悩んでしまったのと、ググると出てくる例が delivery_method をオーバーライドしてるものが多いのでという気持ち。 ロケ地 Ruby 3.1.0 Rails 6.1.6 aws-sdk-rails 3.7 aws-sdk-ses は v1 系利用 TLDR aws-sdk-rails gem を追加して、 config.action_ma…

Rails console から Sidekiq のキューを調査する

以前 console から接続できない場合に、という感じで以下記事を書いた。 donbulinux.hatenablog.jp とはいえハングアップするのは、よっぽどギリギリのリソースで動かしているとかじゃなければ頻発しないはずなので、通常時どうするのか、というお話。 キュ…

Unable to monitor directories for changes because iNotify max watches exceeded.

ロケ地: Amazon Linux release 2 (Karoo) RAILS_ROOT で rails c したらエラーがでるー、と言われたやつ。 実際のエラーはこう。 /RAILS_ROOT/vendor/bundle/ruby/3.1.0/gems/listen-3.7.1/lib/listen/adapter/linux.rb:32:in `rescue in _configure': Unab…

assets が見えないのは net::ERR_HTTP2_PROTOCOL_ERROR かと思っていた

アカウント ID が異なる環境で、動いているアプリケーションを環境ごとクローンする、というタスクがあって、規模的に手動で作業しなおしても大丈夫だなと思って着手したらひどい目にあった、という話。 ページデザインが崩れる デプロイして動作確認を行っ…

530 Must issue a STARTTLS command first (Net::SMTPAuthenticationError)

自前運用の SMTP サーバから AWS SES に切り替える作業があったんだけど、表題のエラーが出て「!?」となっていた。 Must issue a STARTTLS command first 答えは全部ここに書いてあるんですが、ちゃんと暗号化して送信しろ、という話です。 エラー時の該当…

puma.sock failed (111: Connection refused) while connecting to upstream

Nginx で puma の unix socket を参照するように設定した所、 502 が連続するので「何事……?」となっていた。 integration という RAILS_ENV を増やしていたのが原因かと思っていたけど、単純なミスだった。 しらべる Rails 側のログには何も記録されていな…