rails
Railsのcallbackの実体 callbackはActiveSupport::Callbacksを使って定義されます。 github.com ActiveRecordのcallback ActiveRecord::Callbacksに定義があります。 github.com ここでcreateなどが定義されます。 github.com define_model_callbacksは下記…
rspec.info 上記の記事にあるように、Rails 5以降ではrails-controller-testing gemをアプリケーションに追加することは推奨されておらず、RSpecコアチームはrequest specsを書くことを推奨しています。 その理由として、request specでは、単一のcontroller…
Rails 5.2以降でDBに都度接続している場合においてはdatabase.ymlで reaping_frequency: null を設定しないと、スレッドが枯渇してサーバーにsshすらできなくなりサーバーの再起動が必要になります。 sshはこんなエラーになります。 shell request failed on…
Railsの force_ssl と ssl_options について知らないことが多かったのでまとめてみます。 railsguides.jp force_ssl force_ssl を有効にすると、ActionDispatch::SSL がミドルウェアとして差し込まれます。 rails/default_middleware_stack.rb at 5394c94a2b…
前提 Railsのバージョン https://github.com/rails/rails/tree/v4.2.6 ADMIN PINGの正体 ADMIN PINGというコマンドはありません。 実態はMySQLのCOM_PINGというコマンドになります。 https://dev.mysql.com/doc/refman/5.6/ja/mysql-ping.html https://githu…
Cloud TraceはGCPが提供するマネージドな分散トレースシステムです。 cloud.google.com Cloud Traceはマイクロサービスのような分散アーキテクチャで便利に使えるものですが、もちろんモノリシックなアプリケーションでも十分に使う価値があるサービスです。…
medium.com こちらに書いてある内容をRailsで実現するためにやったことを書きます。 StackdriverはOperation Suiteと名前が変わっており、それに伴ってStackdriver loggingも Cloud Logging と名前を変えています。 GKEで動かしているアプリケーションのログ…
1 Rails 6系へのアップデートはRails 6.1のリリースまで待つようにしたのですが、ハマりどころを調査中 github.com blog.kamipo.net 2 cloud.google.com BQがまだうまく使いこなせてないので、もう少し調べてみる 3 engineer.recruit-lifestyle.co.jp A / B…
1 dave.cheney.net yakst.com dev.classmethod.jp ロギングのwarnningに関しては、色々意見が割れているんだよなあ。 自分は問題が起きていることを量で把握した場合にwarnningを使う。 例 : HTTP Stausが400系を返した場合のログ 2 cloud.google.com CPAっ…
1 medium.com techracho.bpsinc.jp 依存性逆転の原則がなかなか手にしっくり来てないことが多いので見直し。 2 bliki-ja.github.io ダイナマイトという比喩が面白い。 確かにうまく扱えなくて爆死するのを見てきた気がする。 自分はうまく扱えているのだろう…
1 blog.yuuk.io arx.appi.keio.ac.jp SLOの過剰達成に関しては、今のプロジェクトでも注意して見ておく必要があるなあ。 工学 engineering を組織的,計画的に目的を達成する行為と考える。 2 speakerdeck.com 今読んでも勉強になる。 集約はドメイン駆動設…
CloudNative Days Tokyo 2019 で「Deep Environment Parity 環境の一致について」というタイトルで発表しました。 運営の皆様、発表する機会をいただき本当にありがとうございました! また、スタッフ、スポンサーの皆様お疲れ様でした! 発表資料は以下です…
JapanContainerDays v18.12 で「1人でできる Docker Kubernetes(GKE)を 使った新規サービス立ち上げ」というタイトルでRailsアプリをGKE上で運用した事例の紹介をしました。 運営の皆様、発表する機会をいただき本当にありがとうございました! また、スタッ…
まあ、いろいろ調べる必要がありまして。。。 ざっくりとこんな感じでとれた。 # production環境では要らないが、development環境では必要かと Dir.glob(File.expand_path('./app/models/*.rb', Rails.root)).each do |f| require f end # 定数を全部取得 co…
アプリ側で特に何も設定してないけど、https化されてるなあって思ったら、 X-Forwarded-Proto: https がrequest headerに入ってた。 忘れそうなのでメモ
rails4.1でmigration走らせたら、 % bundle exec rake db:migrate == 20140501144914 AddColumnsForHoge: migrating ========================== -- change_column(:foo, :bar, :integer, {:unsigned=>true, :limit=>8, :null=>true}) rake aborted! Standar…
MySQLのencodingをutf8mb4にしています。 なので、 varchar(255)のカラムにindexを貼ろうとすると、MySQLから怒られます。 MySQL(InnoDB) で "Index column size too large. The maximum column size is 767 bytes." いわれるときの対策 acts-as-taggable-on…
申し訳ありません この記事完全に自分の間違いでした。 まず、自分のrailsアプリでは、、もろもろの深淵な理由で、モデルを作るときにActiveRecord::Baseを直接継承せずに、全てのモデルに共通で使うモデルを再定義しています。 なぜこんな事をしているかと…
rails 4.1.0に上げてみました。 Gemfileを書いて、 bundle update して、 bundle exec rake rails:update でひたすらYを選択しています。 ちょこちょこ直して、立ち上げてみると、 JSON::ParserError - 795: unexpected token at I"session_id: とかでた。。…