AR ホームベーカリー

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

Rails

AWS ElastiCache(Redis) で認証を入れる際の罠

自前で用意する Redis redis.conf へ以下のように requirepass を設定します。 この場合は、 foobared というパスワードが設定されており、TLS などの暗号化通信は必要ない状態です。 # snip # requirepass foobared # snip # blog.shimar.me ちなみに、公式…

sidekiq のロギング

capistrano-sidekiq でインストールされる systemd 制御ファイル入れた時のロギングについて、CentOS7 あたりだと対応できないので、その対応について。 何が問題なのか このあたりで書いた問題ですね。 donbulinux.hatenablog.jp syslog を利用する append …

ActiveRecord Relation の内容をビャッと view に出す

Model.select("created_at").first とかすると、#<ActiveRecord::reration:〜〜〜> という感じのオブジェクトが頂けるので、いや拙者は値だけがほしい……というときにビャッとする。 Model.pluck("created_at").first なるほど配列なので select ではなく pluck みたいな気持ちになってしまっ</activerecord::reration:〜〜〜>…

ENV が利用できない(ので ENV を利用できるようにする)

なんのこっちゃい、という感じですが。 だいたいこちらに書いてあるとおりです、ありがてえ。 zenn.dev Rails の環境変数呼び出し rails new ./example とかして sqlite で初期化すると、こんな感じの config/database.yml が生成されると思います。 default…

passenger がクラッシュした

めっちゃ古いミドルウェア構成の環境で、 passenger がまれにクラッシュする、という問題があって調査していた。 github.com こういう事があるらしい。 解決策としてアップデートしろ、ということっぽいが、ミドルウェアのバージョンやらなんやら古くないと…

haml で link_to 記述時に onclick に asset_path を利用する方法

なろう系のタイトルみてーになっとる。 ロケ地 Rails 5.1 printJS 何がしたかったか PDF を printJS で印刷させるリンク設定したかった。 ただし対象の PDF は asset:precompile で MD5 digest が付与されている。 静的なファイルを指定する場合 #{RAILS_ROO…

CircleCI の MySQL コンテナが落ちた

ロケ地 CircleCI MySQL 5.7.33 CI がコケる ドキュメント更新してシェルスクリプト追加しただけで落ちたので「絶対にワイのせいじゃない!」という顔で details を見てた。 2021-03-19 02:30:57+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Ser…

Rails のコネクションプール数

基本的に Rack サーバの Worker 数と同じにするべき。 qiita.com Puma Web サーバー​を使用している場合は、pool​ 値を同等の ENV['RAILS_MAX_THREADS']​ に設定することをお勧めします。複数のプロセスを使用している場合は、各プロセスに独自のプールが含…

credentials.yml.enc をやめる

なんかこれも前に書いた気がするな。 #{RAILS_ROOT}/config/credentials.yml.enc は master.key が無いと復号化できなく欠けた状態では動きません。 master.key はたしか .gitignore に標準で記載されているので、何らかの手段で rails new した人が、チーム…

CarrierWave の保存先をローカル指定にする

だいたい以下の記事通り、 config.storage :file とすれば (書き換えれば) 良い。 qiita.com あとは気をつけるとしたら、 config.fog_ などで宣言している箇所を一通りコメントアウトなりしておくと安心だろうか。 もちろん AWS_ 系の環境変数も設定されない…

URI.encode した日本語ファイルへのアクセスで ActionController::RoutingError が発生する

タイトルがすべてって感じです (しろめ) 。 日本語ファイルにアクセスすると死ぬ public 以下に配置した /doc/テスト2017.pdf みたいな日本語ファイルにアクセスすると ActionController::RoutingError が発生して死ぬ。 Ruby 2.5.1 Rails 5.1.7 Passenger 5…

Capistrano デプロイする環境をシュッと作る

プロジェクト初期にしかやらないから、毎回忘れて泣きながら調べてる。 ので、備忘録を兼ねて。 ちなみにこの手順を書くにあたって、社内のナレッジ ( docbase 使ってます ) を確認していたら、退社した元 CTO 兄貴迫真のカレーレシピを見つけて「日本人だい…

delayed_job の動作ログを Rails ログファイル以外に出力する

production.log に大量の UPDATE クエリが記録されてログファイル汚染で「ウッ!」となるやつを回避する。

メールを実送信したくないが送信はされて欲しいし内容は確認したいお気持ちを delivery_method に表明する

Rails は config.action_mailer.delivery_method で、:sendmail なり指定すればサッとメール送信できるので便利で良いですね。 とはいえ、環境によっては「メールを送信したくない!」というパターンがあるので。 しかし単純に送信部分をコメントアウトなり…

whenever で cron を設定すると bundle: command not found

産業で whenever 実行するユーザの 環境変数 PATH に /usr/local/bin を追加しろ 2020/01/10 追記 以下のように whenever の設定ファイルに PATH を設定すると PATH を設定できる。 ログ出力と合わせて記述すると確認しやすくて良い、こっちのほうが楽ちんで…

Capistrano3 で複数のデプロイ先を設定する

といっても、 config/deploy/production.rb に複数 server を書いて、物理的に別のサーバにデプロイする、とかいうやつじゃないです。 複数の deploy_to を設定する これ、1つのサーバに複数のデプロイ先を用意します。 どういう時に必要かというと、1ソー…

assetの確認

今使ってるassetのdigestを確認する consoleとかで実行すればよさそう。 Rails.application.assets.find_asset(asset_name).digest blog.n-z.jp 指定したファイルのdigestを確認する このようにしたらいいらしい。 Rails.application.assets['jquery'].digest…

Sent fileで0バイトのファイルが送られてくる時

わりと忘れがち。 /config/enviroments/production.rb Apacheの場合は「X-Sendfile」、Nginxの場合は「X-Accel-Redirect」を使う。 # Specifies the header that your server uses for sending files #config.action_dispatch.x_sendfile_header = "X-Sendfi…