use first_or_create instead of 4.0'ism of find_or_create_by