Quiero usar find_or_create_by, pero esta declaración NO funciona. No "encuentra" o "crea" con los otros atributos.¿Cómo puedo pasar múltiples atributos a find_or_create_by en Rails 3?
productproperty = ProductProperty.find_or_create_by_product_id(:product_id => product.id, :property_id => property.id, :value => d[descname])
Parece haber muy poca, o ninguna, información sobre el uso de buscadores dinámicos en Rails 3. "y" -ing estos juntos me da un error método desconocido.
ACTUALIZACIÓN:
originalmente no podía conseguir lo siguiente para trabajar. Supongamos que no soy un idiota y que el "producto" es una instancia del modelo AR del producto.
product.product_properties.find_or_create_by_property_id_and_value(:property_id => 1, :value => "X")
Los métodos de error fue:
no such keys: property_id, value
no podía darse cuenta de eso. Sólo esta mañana encontré la referencia para pasar los valores como este en su lugar:
product.product_properties.find_or_create_by_property_id_and_value(1, "X")
Y voilá, funciona bien. Hubiera esperado que un hash funcionara en la misma situación, pero supongo que no.
Así que supongo que obtendrás un voto negativo si pierdes algo en Internet?
Al "guiarlos" te refieres a algo como lo que se describe aquí: [Rails find_or_create por más de un atributo?] (Http://stackoverflow.com/questions/3046607/rails-find-or-create-by-more- que-un-atributo)? – Matt
Intenté esto y funciona bien. ¿Qué exactamente no funciona? ¿Le da un error? ¿Cuál es el valor de 'productproperty'? La documentación para esto está aquí: http://api.rubyonrails.org/classes/ActiveRecord/Base.html (bajo los buscadores dinámicos basados en atributos) – Mischa