У активному записі є зручний динамічний атрибут під назвою find_or_create_by:
Model.find_or_create_by_<attribute>(:<attribute> => "")
Але що робити, якщо мені потрібно знайти_or_create більш ніж одним атрибутом?
Скажіть, у мене є модель, яка могла б підтримувати відносини M: M між Групою та Учасником під назвою GroupMember. У мене може бути багато випадків, коли member_id = 4, але я ніколи не хочу більше, ніж один раз, коли member_id = 4 і group_id = 7. Я намагаюся зрозуміти, чи можна зробити щось подібне:
GroupMember.find_or_create(:member_id => 4, :group_id => 7)
Я розумію, що можуть бути кращі способи вирішити це, але мені подобається зручність ідеї find_or_create.