Existe um atributo dinâmico útil no registro ativo chamado find_or_create_by:
Model.find_or_create_by_<attribute>(:<attribute> => "")
Mas e se eu precisar localizar ou criar mais de um atributo?
Digamos que eu tenha um modelo para lidar com um relacionamento M: M entre Grupo e Membro chamado GroupMember. Eu poderia ter muitas instâncias em que member_id = 4, mas nunca mais quero uma instância em que member_id = 4 e group_id = 7. Estou tentando descobrir se é possível fazer algo assim:
GroupMember.find_or_create(:member_id => 4, :group_id => 7)
Sei que pode haver maneiras melhores de lidar com isso, mas gosto da conveniência da idéia de find_or_create.