In Active-Record gibt es ein praktisches dynamisches Attribut namens find_or_create_by:
Model.find_or_create_by_<attribute>(:<attribute> => "")
Aber was ist, wenn ich nach mehr als einem Attribut suchen oder erstellen muss?
Angenommen, ich habe ein Modell für die Behandlung einer M: M-Beziehung zwischen Gruppe und Mitglied namens GroupMember. Ich könnte viele Instanzen haben, in denen member_id = 4 ist, aber ich möchte nie mehr als eine Instanz, in der member_id = 4 und group_id = 7 sind. Ich versuche herauszufinden, ob es möglich ist, so etwas zu tun:
GroupMember.find_or_create(:member_id => 4, :group_id => 7)
Mir ist klar, dass es vielleicht bessere Möglichkeiten gibt, damit umzugehen, aber ich mag die Bequemlichkeit der Idee von find_or_create.