find_or_create_byというアクティブレコードには、便利な動的属性があります。
Model.find_or_create_by_<attribute>(:<attribute> => "")
しかし、複数の属性でfind_or_createを実行する必要がある場合はどうなりますか?
GroupとMemberの間のGroupMemberと呼ばれる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のアイデアの便利さを気に入っています。