В active-record есть полезный динамический атрибут с именем find_or_create_by:
Model.find_or_create_by_<attribute>(:<attribute> => "")
Но что, если мне нужно найти find_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.