エンジニアリングにはほど遠い

iPhoneアプリとかサイトとかをつくっていくブログです。

Rails

ActiveRecordで複数カラムに対し複数キーワードで探す

割と汎用的かと思ったので載せてみようかと。 orの引数にnilがきたらそのままなのがミソ。 class ActiveRecord::Base def self.search_with_multi(columns:, keywords:) where(columns_keywords_cond(columns, keywords)) end def self.columns_keywords_con…

Ruby Hashのkeyをsymbolに変換する

hashの中のarrayの中にもhashがあったときの事を考えて書きました。 config/initializers/hash.rb class Hash def keys_to_sym each_with_object({}) do |(k, v), hash| hash[k.to_sym] = v.respond_to?(:keys_to_sym) ? v.keys_to_sym : v end end end conf…

Rails インスタンスが持つインスタンス変数一覧をハッシュで取得

ActiveRecordのattributes的な。 instance_values でできるみたいです。(要ActiveSupport) [1] pry(main)> class Hoge [1] pry(main)* attr_accessor :a, :b, :c [1] pry(main)* end => nil [2] pry(main)> hoge = Hoge.new => #<Hoge:0x007fec4b2859d0> [3] pry(main)> hoge.instan</hoge:0x007fec4b2859d0>…

ポリモーフィック関連はアブナい?

参照整合性に違反することに基づいているからだという。 参照整合性はここに書かれている事で担保すると。 Railsでデータベースの不整合をおこさないための設定 多重テーブル継承 エンタープライズRailsに載っていたが、ポリモーフィック関連を使わずに近い…

忘年会

忘年会があり、やや二日酔い気味です。 アーキテクチャについて、DCIという考え方の事を初めて知った。 DCIを考える DCIアーキテクチャ - Trygve Reenskaug and James O. Coplien システムをロール、アルゴリズム、オブジェクトという視点で考え、これらをど…

ダイアリーから移行しました

Markdownがダイアリーでは使えないという事で。 もうほとんど更新できずにいたんですが、「何か技術的に他にあんまり載ってない事があれば書こう」という事で構えてたら全然書けずにいました。 もうちょっと適当な感じで更新していこうと思います。 ちょうど…