mając np model Oddzial_, Struktura_, Przychodnia_ chce w jakimś kontrolerze zrobić złozone zapytanie typu…
select oddzial_s.id, oddzial_s.nazwa from oddzial_s,przychodnia_s, struktura_s WHERE przychodnia_s.id=1 AND struktura_s.przychodnia_id=przychodnia_s.id AND oddzial_s.id = struktura_s.oddzial_id
w jakie sposób mogę tego dokonać?
jest jakaś funkcja do której wpisujemy zwykłe zapytanie ‘select’?
Pozdrawiam
A nie da się przy użyciu ‘find_by_sql’? w jaki sposób mogę się odwołać do zwróconych rekordów?
Przy użyciu ‘find’ itp wiem jak to zrobić, ale chodzi mi o bardziej skomplikowane zapytania takiego typu jak to pierwsze…i dlatego chce użyć ‘find_by_sql’.
[quote=michal_sz]A nie da się przy użyciu ‘find_by_sql’? w jaki sposób mogę się odwołać do zwróconych rekordów?
Przy użyciu ‘find’ itp wiem jak to zrobić, ale chodzi mi o bardziej skomplikowane zapytania takiego typu jak to pierwsze…i dlatego chce użyć ‘find_by_sql’.[/quote]
Zapomnij. W Railsach staraj się korzystać z wysokopoziomowych narzędzi (jak właśnie “czysty find”), jedynie w baaardzo skomplikowanych zapytaniach warto używać find_by_sql.
Ok tak spróbuje…a w jaki sposób utworzyć zapytanie takiego typu, gdzie chce aby zwróciło mi wiersze z podanymi kilkoma ‘id’?..jedna tabela zwraca mi kilka wierszy i z nich pobieram id i po tych id w innej tabeli wyszukuje rekordy.
Ustawiasz relacje has_many i belongs_to, później się normalnie odwołujesz -> http://guides.rubyonrails.org/association_basics.html. Railsy sprytnie wszystko cachują więc będzie to wydajne. Ewentualnie możesz skorzystać z join/include.
Patrząc na przykład z linka widzę że zwracane jest kilka zamówień jednego klienta, a teraz mając ‘id’ tych zamówień chce po tych ‘id’ wyszukać wiersze w innej tabeli, jak?
Człowieku, weź, że przeczytaj dokładnie ten przewodnik (albo w wersji polskiej), albo najlepiej zacznij od wprowadzenia do Rails. To oszczędzi Tobie i nam sporo czasu. Zasadniczo - ActiveRecord powstał właśnie po to, bo załatwiać takie typowe problemy. Robienie w takim przypadku zapytania “find_by_sql” jest zdecydowanie nie na miejscu.
Przejrzałem wszystkie Twoje posty i wynika z nich prosta sprawa - nie przeczytałeś najbanalniejszego nawet wprowadzenia do Railsów i o pytasz się o każdą pierdołę. RTFM.
Zasobów jest mnóstwo, po polsku, po angielsku, po japońsku też. W przewodnikach, do których masz linki wyżej jest wszystko poukładane i wytłumaczone. Zanim zadasz kolejne pytanie na forum, to zajrzyj właśnie tam.
Ok spoko…już podziękowałem za poradę…zrobiłem bazę danych na zaliczenie i mam ją obudować…a ruby jest mi narzucony…chce to jak najszybciej zrobić i nie wczuwać się w to, bo niezbyt mi się to podoba…ale spoko…po co ta agresja…
To nie jest agresja. Bez przesady. Po prostu jest sporo ludzi, którzy nie traktują swojej roboty, tak jak Ty - byle zdać i zaliczyć. Polskie tłumaczenie powstało dzięki pracy studentów i mojej, jako redaktora. Jak widzę sytuacje podobne do tej, gdzie ktoś idzie na totalną łatwiznę i zadaje pytania o najprostsze sprawy na forum, zamiast poświęcić godzinę na przeczytanie jednego dokumentu, to po prostu reaguję.
Dzięki że mnie oceniasz nie znając mnie…nie traktuje swojej roboty w ten sposób…sam wiesz że informatyka to rozległa dziedzina i wszystkiego wiedzieć nigdy nie będziesz…dlatego wybieram to co uważam że mi się przyda i na czym w przyszłości chce skupić swoją uwagę…nie na wszystko jest czas.
Agresja!?? Odniosłem wrażenie że ludzie chcą ci tutaj raczej pomóc Jednak okazujesz kompletny brak współpracy. Nie czytasz tego co Ci podpowiadają. Na moje oko to stworzyłeś sobie baze danych i prawdopodobnie całą mase zapytań, które teraz chciałbyś przenieść do AR gdybyś tylko niebył takim ignorantem i zajrzał troche do dokumentacji ActiveRecord zrozumiał byś że wszystko to co zrobiłeś do tej pory było całkowicie zbędne i za pomocą kilku komend i samego ActiveRecord osiągną byś to samo angażująć znacznie mnie czasu i pracy jaki poświęciłeś do tej pory.
Oceniasz Ruby dokładnie tak samo nie znając go. Co do czasu patrz post wyżej. To co robisz jest niepotrzebne, nikomu nie zależy tutaj na wysłuchiwaniiu usprawiedliwień.
A tak swoja drogą ciekawe zjawisko Buntownik przeciwko edukacji informatycznej… tło język Ruby… 3 lata temu bym nie uwierzył w coś takiego. Czasy się naprawde zmieniają.
Nie no ok…z tą agresją może odniosłem mylne wrażenie…przepraszam w takim razie…wiem że ludzie tu pomagają. Baza danych jest jak najbardziej dobrze zaprojektowana i w zasadzie mam 3 zapytania…w sensie te bardziej skomplikowane i zastanawiałem się jak to szybko wrzucić do rubiego…to wszystko.