Chciałbym móc użyć niestandardowego identyfikatora (zamiast automatycznie zwiększających domyślne) dla modelu Rails. Zasadniczo wszystkie identyfikatory będą identyfikatorami sklepu iTunes, które są po prostu długimi liczbami całkowitymi. Czy możliwe jest wyłączenie domyślnych identyfikatorów auto-inkrementujących i wymagają one ustawienia? Te identyfikatory będą również używane jako klucze obce w innych modelach.Nieautomatyczna inkrementacja kolumny "Identyfikator" ActiveRecord?
Odpowiedz
coś takiego:
create_table :blah, {:id => false} do |t|
t.int :my_custom_int_id
end
execute "ALTER TABLE blah ADD PRIMARY KEY (my_custom_int_id);"
Można ręcznie ustawić identyfikator przed zapisaniem modelu.
a = Model.new
a.id = 8888 #from itunes
a.save
Jednak należy wziąć pod uwagę odrębny pole o nazwie itunes_id
zamiast tego podejścia.
Obecnie używam osobnego pola 'itunes_id' podczas opisywania. Problem polega na tym, że interfejs API, którego używam, zwraca identyfikatory wersji programu itunes, więc trudno jest wykonać dodatkowe wyszukiwanie dla itunes_id -> mój identyfikator modelu cały czas. – markquezada
Bardzo podoba mi się, jak powiedziałeś, co powinien zrobić, ale również zaoferował ci swoją radę .. najlepsza praktyka ... :) – baash05
@daveatflow To jest osobista opinia, a nie najlepsza praktyka IMO. –
- 1. Wkładka atomowa lub inkrementacja w ActiveRecord/Rails
- 2. Automatyczna inkrementacja kolumny innej niż tożsamość w serwerze sql
- 3. Inkrementacja chara
- 4. sposobu dostępu wartość kolumny po serializacji ActiveRecord
- 5. activerecord - Jak uzyskać wszystkie kolumny połączonych tabel
- 6. Jak wyłączyć rejestrowanie ActiveRecord dla określonej kolumny?
- 7. Automatyczna inkrementacja podstawowa pozostawiając przerwy w zliczaniu
- 8. jQuery - datatables, jak uzyskać identyfikator kolumny
- 9. Co oznacza wstępna inkrementacja tablicy $ #?
- 10. Inkrementacja liter za pomocą .następnie
- 11. Inkrementacja i dekrementacja "klasy enum"
- 12. Auto-inkrementacja liter w Perlu
- 13. Inkrementacja operatora na zmiennej referencyjnej
- 14. domyślne dla kolumny z numerem seryjnym w migracji activerecord
- 15. Czy można poprosić o tylko niektóre kolumny ze stowarzyszenia ActiveRecord?
- 16. Automatyczna inkrementacja identyfikatora mysql nie rozpoczyna się od 0
- 17. Nietrwałe atrybuty modelu ActiveRecord
- 18. Jak łączyć obiekty ActiveRecord?
- 19. ActiveRecord wybierz z wyjątkiem kolumn
- 20. Vim macro: Inkrementacja liczb w kolejnych wierszach
- 21. Inkrementacja wielu genvarów w Verilog Wygeneruj oświadczenie
- 22. Czy dekompresja atomowa jest droższa niż inkrementacja?
- 23. Automatyczna inkrementacja Derby i Eclipselink UnitOfWork
- 24. C++ inkrementacja std :: atomic_int if niezerowa
- 25. Automatyczna inkrementacja zmiennej w pętli while
- 26. Jak mogę uzyskać wartość licznika webkit-kolumny i bieżący identyfikator strony lub kolumny?
- 27. ActiveRecord :: SubclassNotFound
- 28. Szyny ActiveRecord znaleźć w konsoli
- 29. Ograniczenie kolumn reprezentowanych w ActiveRecord
- 30. Jak mogę mieć dwie kolumny w jednym punkcie tabeli do tej samej kolumny w innym z ActiveRecord?
Wygląda na to, czego szukałem, dzięki. – markquezada
Będziesz także musiał dodać 'set_primary_key: my_custom_int_id' (Rails 3) lub' self.primary_key =: my_custom_int_id' (Rails 4) w twoim modelu. – gregoltsov