Une chose que je me suis toujours demandée à propos de rails est la possibilité de passer des données supplémentaires aux méthodes find_or_create dans rails. Par exemple, je ne peux pas faire ce qui suit
User.find_or_create_by_name('ceilingfish', :email => 'an_email@a.domain', :legs => true, :face => false)
Je pourrais faire
u = User.find_or_create_by_name('ceilingfish')
u.update_attributes(:email => 'an_email@a.domain', :legs => true, :face => false)
Mais c'est plus moche, et ça nécessite aussi trois requêtes. Je suppose que je pourrais faire
User.find_or_create_by_name_and_email_and_face_and_legs('ceilingfish','an_email@a.domain',true, false)
Mais ça implique en quelque sorte que je sais quelles sont les valeurs de email
, legs
y face
sont. Quelqu'un sait-il s'il existe un moyen vraiment élégant de faire cela ?