Hay un atributo dinámico útil en el registro activo llamado find_or_create_by:
Model.find_or_create_by_<attribute>(:<attribute> => "")
Pero, ¿qué sucede si necesito encontrar_o_crear con más de un atributo?
Digamos que tengo un modelo para manejar una relación M: M entre Group y Member llamada GroupMember. Podría tener muchas instancias donde member_id = 4, pero nunca quiero más de una instancia donde member_id = 4 y group_id = 7. Estoy tratando de averiguar si es posible hacer algo como esto:
GroupMember.find_or_create(:member_id => 4, :group_id => 7)
Me doy cuenta de que puede haber mejores formas de manejar esto, pero me gusta la conveniencia de la idea de find_or_create.