Mam dwie aplikacje, App1 i App2. App1 publikuje ładunek JSON do App2 zawierający dane dla obiektu nadrzędnego i podrzędnego. Jeśli obiekt nadrzędny już istnieje w App2, aktualizujemy rekord nadrzędny, jeśli coś się zmieniło i tworzymy rekord podrzędny w App2. Jeśli obiekt nadrzędny nie istnieje w App2, musimy najpierw go utworzyć, a następnie utworzyć obiekt podrzędny i skojarzyć te dwa. Teraz robię to tak:
class ChildController
def create
@child = Child.find_or_initialize_by_some_id(params[:child][:some_id])
@child.parent = Parent.create_or_update(params[:parent])
if @child.update_attributes(params[:child])
do_something
else
render :json => @child.errors, :status => 500
end
end
end
Coś jest nieprzyjemne w tworzeniu/aktualizowaniu rodzica w ten sposób. Czy jest lepszy sposób na to? Dziękuję!
1 odpowiedź
Użyj accept_nested_attributes_for
, aby poradzić sobie z relacjami między rodzicami i dziećmi. Oto post na blogu, który pomoże Ci http://currentricity.wordpress.com/2011/09/04/the-definitive-guide-to-accepts_nested_attributes_for-a-model-in- szyny-3/
Podobne pytania
Powiązane pytania
Nowe pytania
ruby-on-rails
Ruby on Rails to framework aplikacji internetowych typu open source z pełnym stosem, napisany w języku Ruby. Opiera się na popularnym modelu frameworkowym MVC i jest znany ze swojego podejścia do tworzenia aplikacji „konwencja zamiast konfiguracji”.