Ecco alcuni dei miei codice di produzione (ho dovuto forzare interruzioni di linea):C'è find_or_create_by_ che accetta un hash in Rails?
task = Task.find_or_create_by_username_and_timestamp_and_des \
cription_and_driver_spec_and_driver_spec_origin(username,tim \
estamp,description,driver_spec,driver_spec_origin)
Sì, sto cercando di trovare o creare un oggetto unico ActiveRecord::Base
. Ma nella forma attuale è molto brutto. Invece, mi piacerebbe usare qualcosa di simile:
task = Task.SOME_METHOD :username => username, :timestamp => timestamp ...
che so di find_by_something key=>value
, ma non è un'opzione qui. Ho bisogno che tutti i valori siano unici. C'è un metodo che farà lo stesso come find_or_create_by
, ma prendi un hash come input? O qualcos'altro con la semantica simile?
Sì, si può certamente aggiungere ad AR :: Base, ma trovo che ci sia un comportamento specifico del modello, come se tu volessi scegliere colonne univoche specifiche per fare la ricerca. Ma puoi sempre ignorarlo. – wuputah