Problemy z Agile. Programowanie w Rails. Wydanie II

Witam,

Po raz kolejny podchodzę do Rails-ów i po raz kolejny mam ten sam problem z rusztowaniami:

  1. Utworzyłem model product
  2. Wpisałem w pliku migracyjnym odpowiednie kolumny do migracji
  3. Przeprowadziłem migrację
  4. Utworzyłem kontroler admin, w którym mam wg. autora zarządzać danymi z modelu product poprzez dodanie “scaffold :product”
    I teraz pytanie - Jak bez rusztowań dynamicznych przenieść zarządzanie produktem do kontrolera admin?

Kiedy tworze rusztowanie przy pomocy polecenia scaffold tworzy mi się model i kontroler o tej samej nazwie. Jak sprawić żaby do modelu product zarządzeni danymi było w kontrolerze np. admin?

Z gory uprzedzam że zdaję sobie sprawę że to pewnie głupie pytanie, ale nie mogę ogarnać tych rusztowań :frowning:

Pozdrawiam,
Michał

Wyrzuć scaffoldy do kosza i pisz CRUDy “z palca”. Serio.
No i zmień książkę :wink:

Tak jak mówię - jestem totalnie zielony i nie wiem nawet gdzie zacząć szukać :frowning:

A jaką książkę proponujesz? Bo nie mogę znaleźć aktualnej lektury z opisem nowych rusztowań, a zawiesiłem się na tym i już 4 raz podchodzę (co miesiąc robię jedną próbę).

I to serio - to serio serio? :slight_smile: Bo wiem, że jestem leszcz, Rubiego się uczę, ale to mój pierwszy język programowania i raczej takie pisanie kodu może być ciężkie… :confused: A raczej spotkam więcej przeszkód, niż gdy prowadzi mnie nieaktualny podręcznik…

OK. Wygenerowałem kontroler store i dałem mu dziedziczenie po kontrolerze Products, dzięki czemu uzyskałem dostęp do metod kontrolera Products i wyświetliłem tylko widok danych z bazy bez możliwości edycji.

Pytanie weryfikujące - czy tak można robić? A raczej czy nalezy to do bezpiecznych sposobów tworzenia aplikacji? :slight_smile:

@Tomash- często czytam Twoje posty, i to, co mnie w nich czasem boli, to brak argumentacji :wink:

możesz uargumentować? ja korzystam ze standardowego scaffoldu, który potem odpowiednio tuninguje, i wygląda bardzo przyzwoicie - jak nie wierzysz, mogę kiedyś pochwalić się screenami :wink:
@fudek - nie bardzo wiem, czym są te magiczne “rusztowania” (chyba, że mówisz o scaffoldzie :wink: )
zakładając, że nie masz railsów z czasów kamienia łupanego, w konsoli klepiesz:

script/generate scaffold nazwa_modelu [parametry]

gdzie parametry to odpowiedni pola dla Twojego modelu. przykład:

script/generate scaffold site title:string permalink:string body:text published:boolean

następnie zrób sobie kontroller admin - niech dziedziczy po kontrolerze application. A wszystkie generowane przez Ciebie scaffoldy niech dziedziczą po kontrollerze admin, a nie po application :wink:

To z reguły jest argumentacja, której wolałbyś nie czytać i dlatego ją pomijam :wink:

Znaczy rozumiem Cię, bo też zaczynałem od scaffoldów (szybko porzuciłem, ale mniejsza o to) no i są takie uber-cool na tych wszystkich screencastach, ale popatrz ile się grzebiesz z tymi generatorami. Robiąc copypastę kodu z istniejących/posiadanych/widzianych_na_sieci formularzy miałbyś już to wszystko z głowy.

AWDWR 2nd ed. nadaje się do wyrzucenia, bo

a Railsy po 1.2 nie bez powodu zmieniły numerek na 2.0 – naprawdę sporo się pozmieniało, wyleciało lub sie mocno zmieniło. Próba uczenia się z książki o Railsach 1.2 podczas pisania w Railsach 2.x to strata czasu i nerwów. Albo kupa, albo won z nocnika – możesz sobie zainstalować RoR 1.2.6 albo zmienić książkę na nowsze wydanie.

A zmianę książki polecam w tym wypadku dlatego, że też od AWDWR zaczynałem i po trafieniu “do zawodu” przez dobre trzy miesiące odkręcałem złe praktyki i nawyki, jakie ta książka sprzedaje.

@krzyzak - Super, dzięki za info, że moge tak się bawić dziedziczeniem bez obawy, że nieświadomie robię najgorsza rzecz jaka może istnieć :slight_smile: Jeżeli chodzi o te rusztowania to tak - jest to ponoć polska nazwa scaffoldu => tak z książki wywnioskowałem :slight_smile:

@Tomash - książkę już wyrzuciłem :wink: Scaffold nadal będę chyba stosował :stuck_out_tongue_winking_eye: Męczę/Bawię się dalej z Railsami.

Dzięki za pomoc Panowie.

http://www.apohllo.pl/guides/getting_started_with_rails.html

w sensie, że nie logiczna, tylko emocjonalna? :wink:

copypaste + zmiana nazw modeli na prawidłowe. a i tak w efekcie uzyskałbym kod b. podobny do tego wygenerowanego przez scaffoldy (widoki tylko zmieniam conieco, na potrzeby przemielenia go do postaci flexigrida )

tak naprawdę nie wiem, czy to jest “be” - wiem, że działa i to dobrze- wszystko, co jest od panelu admina trzymam w podfolderze admin, dziedziczy po admin controller, co implikuje kilka waznych dla mnie rzeczy:
całą logikę autoryzacji trzymam w kontrolerze admina, więc te dziedziczące po nim nie są skażone tym kodem ;p
widoki dziedziczą po layoucie admin, a nie application, więc za darmo mam layout panelu admina gotowy :wink: