Aquí es parte de mi código de producción (tuve que forzar saltos de línea):¿Hay find_or_create_by_ que tenga un hash en 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í, estoy tratando de encontrar o crear un objeto único ActiveRecord::Base
. Pero en la forma actual es muy feo. En su lugar, me gustaría usar algo como esto:
task = Task.SOME_METHOD :username => username, :timestamp => timestamp ...
que sé de find_by_something key=>value
, pero no es una opción aquí. Necesito que todos los valores sean únicos. ¿Hay algún método que haga lo mismo que find_or_create_by
, pero tome un hash como entrada? ¿O algo más con semántica similar?
Sí, ciertamente puede añadir a AR :: Base, pero creo que hay algún comportamiento específico del modelo, como si desea elegir columnas únicas específicas para hacer el hallazgo. Pero siempre puedes anularlo también. – wuputah