utworzyć nowy rekord tak:Szyny automatycznego przypisywania identyfikator, który już istnieje
truck = Truck.create(:name=>name, :user_id=>2)
Moja baza ma obecnie kilka tysięcy jednostek do wózka, ale przypisany identyfikator do kilku z nich, w sposób sposób, dzięki któremu niektóre id są dostępne. Tak więc, co się dzieje, szyny tworzą element o id = 150 i działa dobrze. Ale potem próbuje utworzyć element i przypisać mu id = 151, ale id może już istnieć, więc widzę ten błąd:
ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey" DETAIL: Key (id)=(151) already exists.
i następnym razem mogę uruchomić akcję, to będzie po prostu przypisz identyfikator 152, który będzie działał poprawnie, jeśli ta wartość nie jest już zajęta. Jak mogę uzyskać tory, aby sprawdzić, czy identyfikator już istnieje, zanim go przypisze?
Dzięki!
EDYTOWANIE
Identyfikator wózka jest tym, co jest powielane. Użytkownik już istnieje i jest w tym przypadku stały. To jest stary problem, z którym muszę sobie poradzić. Jedną z opcji jest ponowne utworzenie tabeli przy automatycznym przypisywaniu każdego identyfikatora. Zaczynam myśleć, że to może być najlepszy wybór, ponieważ mam kilka innych problemów, ale migracja do tego będzie bardzo skomplikowana, ponieważ Truck jest obcym kluczem w wielu innych tabelach. Czy istnieje prosty sposób, aby szyny tworzyły nową tabelę z tymi samymi danymi, które są już przechowywane w Truck, z automatycznie przypisanymi identyfikatorami i utrzymywaniem wszystkich istniejących relacji?
dlaczego nie pozwalasz automatom przypisywać identyfikatora automatycznie? Wyeliminowałoby to niebezpieczeństwo duplikacji - czy jest to problem ze starszymi danymi, w którym należy zachować stare identyfikatory? Po prostu chcesz zrozumieć sprawę biznesową, ponieważ nie jest to normalne w przypadku tworzenia nowego obiektu. – MBHNYC
@MBHNYC Myślę, że D-Nice przypisuje user_id podczas tworzenia firmy, a nie id, jak myślisz (i zrobiłem to na chwilę). – Anil
Ooo dobry połów Anil - masz całkowitą rację. @ D-Nice, może dodać swoją migrację do tego stołu do swojego posta, czy jest coś dziwnego? Kuszące, aby edytować ten identyfikator użytkownika, aby wyeliminować zamieszanie .. – MBHNYC