W aktywnym rekordzie znajduje się przydatny atrybut dynamiczny o nazwie find_or_create_by:
Model.find_or_create_by_<attribute>(:<attribute> => "")
Ale co jeśli będę musiał znaleźć_lub_tworzyć za pomocą więcej niż jednego atrybutu?
Powiedzmy, że mam model do obsługi relacji M: M między grupą a członkiem o nazwie GroupMember. Mógłbym mieć wiele instancji, w których member_id = 4, ale nigdy nie chcę więcej niż jednej instancji, gdzie member_id = 4 i group_id = 7. Próbuję dowiedzieć się, czy można zrobić coś takiego:
GroupMember.find_or_create(:member_id => 4, :group_id => 7)
Zdaję sobie sprawę, że mogą istnieć lepsze sposoby na poradzenie sobie z tym, ale podoba mi się wygoda pomysłu find_or_create.