Chcę użyć find_or_create_by, ale to polecenie NIE działa. Nie "odnajduje" ani "tworzy" z innymi atrybutami.Jak mogę przekazać wiele atrybutów do find_or_create_by w Rails 3?
productproperty = ProductProperty.find_or_create_by_product_id(:product_id => product.id, :property_id => property.id, :value => d[descname])
Nie wydaje się być bardzo mało, lub nie, informacje o wykorzystaniu dynamicznych dystansu w szynach 3. „i” -ing to razem daje mi nieznany błąd metody.
UPDATE:
Początkowo nie mogłem uzyskać następujące do pracy. Załóżmy, że nie jestem idiotą, a "produkt" jest instancją modelu AR produktu.
product.product_properties.find_or_create_by_property_id_and_value(:property_id => 1, :value => "X")
Metody błąd:
no such keys: property_id, value
nie mogłem zrozumieć, że obecnie. Dopiero dziś rano znalazłem odniesienie do podania wartości takich jak ta:
product.product_properties.find_or_create_by_property_id_and_value(1, "X")
I voila, działa dobrze. Spodziewałbym się, że hash zadziała w tej samej sytuacji, ale chyba nie.
Sądzę, że uzyskasz mniejszą liczbę głosów, jeśli coś przegapisz w Internecie?
Przez "anding" masz na myśli coś podobnego do opisanego tutaj: [Rails find_or_create przez więcej niż jeden atrybut?] (Http://stackoverflow.com/questions/3046607/rails-find-lub-create-by-more- niż jeden atrybut)? – Matt
Próbowałem tego i działa dobrze. Co dokładnie nie działa? Czy otrzymujesz błąd? Jaka jest wartość 'productproperty'? Dokumentacja jest dostępna tutaj: http://api.rubyonrails.org/classes/ActiveRecord/Base.html (w wyszukiwarce dynamicznych atrybutów) – Mischa