Czy istnieje obecnie sposób na wykonanie surowego zapytania SQL Select przy użyciu ActiveRecord w Railsach 4.0.0.beta1? Widzę, że ActiveRecord :: Base.execute już nie istnieje. Jaki jest właściwy sposób postępowania w tej sprawie?Rails 4, surowe zapytanie za pomocą ActiveRecord
33
A
Odpowiedz
49
Tutaj spróbować tego, wybierz przykład ..:
query = "select ...."
results = ActiveRecord::Base.connection.execute(query)
10
W Rails 4 (chyba wcześniejsze wersje, jak również), jeśli masz zamiar z kwerendy niestandardowej dla prędkości, można dodać :skip_logging
argument uniknąć pisania w dzienniku:
query = "SELECT ..."
results = MyModel.connection.execute(query, :skip_logging)
(Uwaga: Jeśli czytam źródła prawidłowo, to może nie uznać za prawdziwe w PostgreSQL).
26
Wystarczy dodać moje dziesięć pensów, surowy zapytanie przy użyciu Model.connection.execute nie zwróci modelu ActiveRecord - zwróci on nieprzetworzony zestaw danych.
Poniższa powróci modeli ActiveRecord:
MyModel.find_by_sql(query)
edit: zakładając oczywiście, że masz uruchomiony wybierz.
Powiązane problemy
- 1. Escape surowe kwerendy SQL w Laravel 4
- 2. Zapytanie Ruby on Rails ActiveRecord przy użyciu join
- 3. Bezpieczne ActiveRecord jak zapytanie
- 4. Upsert in Rails ActiveRecord
- 5. Zapytanie za pomocą Sparql
- 6. Jak wykonywać zapytania surowe za pomocą Laravel 5.1?
- 7. Przesyłanie plików za pomocą Rails 4, Strong Parameters i Carrierwave
- 8. Tworzenie pliku sitemap.xml za pomocą Ruby on Rails 4
- 9. Surowe zapytanie SQL z obiektu encji
- 10. Rails 3 Zapytanie ActiveRecord przy użyciu zarówno SQL IN, jak i operatorów SQL OR
- 11. ActiveModel :: ForbiddenAttributesError - Rails 4
- 12. Jak wykonać surowe zapytanie sql w strukturze encji?
- 13. Rails/ActiveRecord - AdapterNotSpecyfikowany, chociaż jest
- 14. Rails ActiveRecord sprawdzanie poprawności dla zmiennych nieobowiązkowych
- 15. Ruby on Rails/ActiveRecord and Table Partition
- 16. Łączenie z serwerem SQL za pomocą ActiveRecord
- 17. Rails 3 - ActiveRecord i Reverse Sort
- 18. Aktualizacja z Rails 3.2 do Rails 4
- 19. Zapytanie ActiveRecord jest znacznie wolniejsze niż proste zapytanie SQL?
- 20. Wkładka atomowa lub inkrementacja w ActiveRecord/Rails
- 21. Rails ActiveRecord: Wiele warunków w znalezieniu
- 22. zwraca niestandardowe zapytanie wyboru w activerecord
- 23. Sporządzanie i wykonywanie instrukcji za pomocą ActiveRecord przy użyciu PostgreSQL
- 24. Rails 4 problem force_ssl?
- 25. parametryzowane przyłączyć Rails 4
- 26. Zrozumienie rails ActiveRecord "single model" self join
- 27. Rails 4 + Devise Zaloguj się za pomocą adresu e-mail lub nazwy użytkownika i mocnych parametrów.
- 28. Jak odkazić surowego SQL w Railsach 4
- 29. Jak uzyskać surowe, skompilowane zapytanie SQL z wyrażenia SQLAlchemy?
- 30. Pobieranie złożonych obiektów przez surowe zapytanie SQL w Entity Framework
Wygląda na to, że jest to przestarzałe w przypadku wywoływania tego ze sterownika. 'OSTRZEŻENIE DEPRECACJI: #connection jest przestarzałe na rzecz uzyskiwania dostępu poprzez klasę." – Vortico
jest tak, ponieważ powinieneś pozwolić modelowi na interakcję z bazą danych zamiast dostępu do bazy danych bezpośrednio w kontrolerze – ant
@ant powinienem otworzyć transakcję lub otworzyć połączenie wystarcza do wykonania niestandardowego zapytania sql? [przykład pastie] (http://pastie.org/10111824) – gaussblurinc