15 votes

Passage de données supplémentaires à find_or_create

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 ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X