楽天銀行の入出金明細は全期間を CSV でダウンロードできるので、その CSV から特定の名義についての振込を抽出したかったので書きました。
最近は小さいサービスをSinatra + Sequel + Dockerの構成でやっている。
今回はError: Sequel::Migrator::Error: More than 1 row in migrator table
というエラーが出てきてよくわからなかったのでその対処法を残しておく。
Railsほど大きいフレームワークを使いたくない時にSinatra
+ Sequel
でやろうとしたら意外と躓くポイントがあったので記録として残しておきます。今回はModelを作ってmigrationする流れについて。
メールのプレビューをブラウザ上で表示できるGEM open_letter
ですが、デフォルトのWSL環境のUbuntuではlaunchy
がエラーを吐いて終了してしまいます。少し設定をしておけば問題なく使えるのですが、毎回その設定方法を忘れてしまうのでメモっておきます。
Rails でObject#present?
やObject#blank?
でArgumentError: invalid byte sequence in UTF-8
が出て少し困ったのでその原因と対処法を残しておきます。
Rails6で実装されたActiveRecord#upsert_all
でバルクアップデートをしようとすると
ActiveRecord::StatementInvalid: PG::CardinalityViolation: ERROR: ON CONFLICT DO UPDATE コマンドは行に再度影響を与えることはできません HINT: 同じコマンドでの挿入候補の行が同じ制約値を持つことがないようにしてください
とエラーが出たけどCardinalityViolation
の意味がわからなかったので調べてみました。
Selenium::WebDriver.for(:chrome)
の headless のためのオプション設定方法がややこしくてよく忘れるのでメモっておきます。
SeleniumでChromeをheadlessで使おうとすると複数のオプションがあって、バージョンによって必要なオプションが変わるなど面倒なことが山盛りなので、せめて一箇所で設定できるようにデフォルトで読み込むオプション設定を決めることにしました。
スクレイピングをする時に使うブラウザをRailsの開発環境と本番環境で切り替えたかったので方法を記録しておきます。
たとえばUser
モデルがhas_many
でArtWork
を持っているときに、最新のArtWork
をhas_one
でも持ちたい場合の実装方法を解説します。