Twitter以上ブログ以下

ただの読み物

Ruby

faraday-middleware と Oj の組み合わせで動かなくなる話

背景 faraday-middleware が突如として ArgumentError: options must be a hash. というエラーを吐いて落ちた この原因を探ってしまったので(本当は issue にあった)、記録として残しておく。現状この問題は解決済み 結論 Oj で mimic mode を使っていると…

ruby の Struct でキーワード引数を使って初期化する

背景 class Point < Struct.new(:x, :y); end Point.new(x: 1, y: 2) みたいなことをしたかった。 結論 class Point < Struct.new(:x, :y) def initialize(x:, y:) super(x, y) end end なぜ? 似たような class OpenStruct (Ruby 2.4.0) ならばできるが、Op…

ActiveRecordでレコードをARインスタンス化しないでハッシュで取り扱う

背景 ams = AwesomeModel.where(id: [1,2,3]) #=> <ActiveRecord::Relations ... > で、ams は AwesomeModel のインスタンスであるが、インスタンス化したくないときがある。 どうするか AwesomeModel.connection.exec_query(AwesomeModel.where(id: [1,2,3]).to_sql).to_hash #=> [{id: 1,</activerecord::relations>…

Rspec,RailsのRequestSpecにおいて、post時にrefererをセットするには _path じゃなくて _url を使う

背景 Rspec で、ある条件のリクエストをすると、refererがあった場合にはreferer、そうでない場合は default みたいな感じの飛ばし方をしようとしているところがあって、これのSpecを書こうとしていた。 結論 request.referer で参照させるには、 /awsome だ…