find_or_create_byと呼ばれるアクティブレコードには便利な動的属性があります。
Model.find_or_create_by_<attribute>(:<attribute> => "")
しかし、複数の属性でfind_or_createする必要がある場合はどうなりますか?
GroupMemberと呼ばれるGroupとMember間のM:M関係を処理するモデルがあるとします。member_id = 4のインスタンスが多数ある可能性がありますが、member_id=4およびgroup_id=7のインスタンスが2回以上必要になることはありません。次のようなことが可能かどうかを調べています。
GroupMember.find_or_create(:member_id => 4, :group_id => 7)
これを処理するためのより良い方法があるかもしれないことを私は理解していますが、find_or_createのアイデアの便利さが好きです。