alexpchin/Rails_Generating_and_Scaffolding.md

Używanie przez Railsy ścisłych konwencji nazewnictwa oznacza, że wiele kodu rdzeniowego POWINNO być w tym samym formacie niezależnie od tego kto go pisze? Może to być napisane przez przyjaciela, kolegę lub komputer… to nie powinno mieć znaczenia, ponieważ te same zasady Rails stosują się do wszystkich.

To oznacza, że Rails może faktycznie wykonać pewne zadania za ciebie! Może faktycznie budować rzeczy i pisać kod w twoim imieniu…

Przybywając z innego języka, takiego jak PHP, może się to wydawać magią.

Szybkie odniesienie:

rails g scaffold Post name:string title:string content:textrails g controller Commentsrails g model Comment commenter:string body:text article:references

##Rails generatorPolecenie rails generate używa szablonów zaprojektowanych przez konwencję do tworzenia całej masy użytecznych rzeczy. Samo uruchomienie polecenia rails generate daje listę dostępnych generatorów:

rails generate

lub dla super-hakerów:

rails g

Istnieje wiele generatorów:

Rails:

  • assets
  • controller
  • generator
  • helper
  • integration_test
  • mailer
  • migration
  • model
  • .

  • observer
  • performance_test
  • resource
  • scaffold
  • scaffold_controller
  • session_migration
  • task

Kawa:

  • coffee:assets

Jquery:

  • jquery:install

Js:

  • js:assets

##Scaffolding w Railsach

Narzędzie scaffoldingowe Railsów to szybki sposób na wygenerowanie niektórych z głównych fragmentów kodu w aplikacji. To oszczędza mnóstwo czasu, gdy chcesz szybko zacząć działać! (To jest super fajne!)

Zależnie od tego, co chcesz stworzyć, scaffolding może automatycznie wygenerować wszystkie lub kombinację:

migrationsmodelsviewscontrollersunit_tests helpersstylesheetsjavascript

Może być jeszcze kilka innych plików, które tworzy… Nie jestem pewien, czy to kompletna lista!

##Skafolding całego zasobu

Skafoldingujesz rzeczy związane z obiektem (liczba pojedyncza)

Jeśli chcesz rusztować aplikację, musisz rusztować każdy zasób w ramach tej aplikacji. Gdybyś na przykład chciał stworzyć aplikację do blogowania – mógłbyś rusztować cały zasób Post:

rails g scaffold Post

Nazwa zasobu Post musi być:

  • UpperCamelCase
  • SINGULAR

Nazwa ta będzie nazwą modelu, np. Post. Będzie to również nazwa klasy kontrolera (ale spolszczona), np. PostsController ORAZ nazwa tabeli (ale spolszczona), np. posts

Po nazwie klasy można dodać kolumny tabeli i ich datatypy.

rails g scaffold Post name:string title:string content:text

Nazwy tych kolumn tabeli powinny być:

  • lower_snake_case
  • SINGULAR

Jest to spowodowane tym, że każdy element Post ma mieć jedną wartość przechowywaną w każdej kolumnie.

Gdybyś uruchomił to rusztowanie, utworzyłoby ono następujące pliki:

Wewnątrz PostController, wszystkie metody RESTful zostaną utworzone i wszystkie będą miały odpowiadające im pliki widoku.

Po utworzeniu pliku migracji, w celu dokonania zmiany w bazie danych należy uruchomić:

rake db:migrate

##Generowanie tylko kontrolera

Kontroluje on wiele obiektów (więc jest to liczba mnoga)

Czasami, chcesz wygenerować tylko kontroler.

rails g controller Comments

Nazwa kontrolera musi być:

  • UpperCamelCase
  • PLURALIZED

To dlatego, że kontroler zajmuje się wieloma przykładami obiektu, więc powinien być w liczbie mnogiej.

To stworzy te pliki:

To NIE stworzy pliku migracji lub pliku modelu.

##Generowanie tylko modelu

Generujesz zarys obiektu (liczba pojedyncza)

Jeśli chcesz tylko stworzyć model, możesz zrobić:

rails g model Comment
  • UpperCamelCase
  • SINGULAR

Możesz również dodać do tego nazwy kolumn, jeśli chcesz:

rails g model Comment commenter:string body:text article:references

Te nazwy kolumn tabeli powinny być:

  • lower_snake_case
  • SINGULAR

Generowanie modelu utworzy te pliki:

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.