2008-10-06 22 views
8

Po prostu uczę się Ruby on Rails. Czytałem kilka książek, oglądałem wiele Railscastów, obejrzałem kilka przykładów.Projektowanie stron internetowych z Ruby on Rails

Jednak podczas pracy na moim pierwszym poważnym projektem z Rails, stałam się rozłączyła się, jak prawidłowo realizować pewne bardzo podstawowe portal dysponuje że większość samouczki widziałem brak.

Na przykład: menu nawigacyjne. Wiele tutoriali na temat tworzenia statycznego, ale co z dynamicznego? Jeśli chcę utworzyć pasek nawigacji, który różni się między stronami, w jaki sposób chciałbym to zrobić?

Myślę, że najlepszym sposobem, aby dowiedzieć się rzeczy, jak to widząc przykładowy kod. Czy w RoR są jakieś dobre strony z otwartym dostępem? Jakiś przykładowy kod, który mogę sprawdzić?

Domyślam się, że moje pytanie naprawdę skutkuje użyciem MVC. Podstawowa idea jest naprawdę podstawowa i rozumiem to. Ale wydaje się, że większość aplikacji ma każdą część całkowicie od siebie oddzieloną ... co, jeśli chcę np. Połączyć dane z dwóch modeli, aby wyświetlić je na tej samej stronie? Aby wziąć przykład, który podjąłem, jeśli mam NavModel i PageModel, czy mój PageController może uzyskać dostęp do obu modeli? Sądzę, że założyłem, że PageController może uzyskać dostęp do PageModel i żadnego innego. Wszystkie przykłady, które widziałem, działają w ten sposób ... czy to błędne założenie?

Albo ja całkowicie brakuje punktu, i to, że "robi to źle?

+2

Nie ma jeden do jednego między modelami i kontrolerami . Nic złego w pisaniu kontrolera używającego danych z wielu różnych modeli. Model to twoje dane. Kontrolery to twoje polecenia. Widoki to twoje ekrany. – Ken

Odpowiedz

3

Które książki przeczytałeś? Myślę, że lepsze zrozumienie MVC i Railsa pomogłoby ci w dłuższej perspektywie niż przykładowy kod, który możesz pokusić o skopiowanie bez zrozumienia.

Problem, który opisujesz, nie różni się znacząco od wyszukiwania i wyświetlania jakichkolwiek danych, które na pewno widziałeś w opisach na blogach itp. (Używanie części i/lub układów jest możliwe jedyna różnica).

Jeśli jeszcze ich nie czytałeś, powinieneś wypróbować: Agile Web Development with Rails i The Rails Way.

Dostępne są także severalbooks, które przeprowadzą Cię przez proces tworzenia przykładowej aplikacji z komentarzem, aby upewnić się, że rozumiesz, co robisz.

+0

Przeczytałem The Rails Way, "Simply Rails 2" ...Edytuję moje pytanie, aby podać więcej szczegółów. –

+0

Agine Web Development z Rails to dobra książka. – Ken

1

Twój kontroler może uzyskać dostęp do wszystkich swoich modeli, więc jeśli PageController potrzebuje dostępu do NavModel że jest w porządku. Myślę, że zazwyczaj kontroler lub helper Nav zawierałby metody niezbędne do przygotowania widoku nawigacji, ale nie znając szczegółów twojego projektu, nie mogę powiedzieć na pewno - jeśli uważasz, że jest to część logiki strony, to umieść to tam.

Możesz być również zainteresowany tym „What goes where” kwestii.