C'è un utile attributo dinamico in active-record chiamato find_or_create_by:
Model.find_or_create_by_<attribute>(:<attribute> => "")
E se avessi bisogno di find_or_create con più di un attributo?
Supponiamo di avere un modello per gestire una relazione M: M tra Gruppo e Membro chiamato GroupMember. Potrei avere molti casi in cui member_id = 4, ma non voglio mai più di un'istanza in cui member_id = 4 e group_id = 7. Sto cercando di capire se è possibile fare qualcosa del genere:
GroupMember.find_or_create(:member_id => 4, :group_id => 7)
Mi rendo conto che potrebbero esserci modi migliori per gestirlo, ma mi piace la comodità dell'idea di find_or_create.