2009-09-16 15 views
11

Czy istnieje konwencja nazewnictwa najlepszych praktyk dla migracji Rails, szczególnie podczas edycji modelu?Konwencje nazewnictwa dotyczące migracji Railsów

np. jakbym dodanie kolumny bar do modelu Foo, należy nazwać to edit_foo lub add_bar_to_foo

Jestem zakładając, jeśli mam edycję modeli mutliple następnie należy utworzyć wiele migracje, ale co jeśli robię wielokrotność modyfikacje do pojedynczego modelu, czy nazwę to add_bar_remove_x_edit_y_to_foo?

Odpowiedz

5

zgadzam się z poprzednim plakatu. Nazewnictwo powinno koncentrować się na czytelności. Pamiętaj jednak, że nie możesz (ani nie powinna) mieć dwóch migracji o tej samej nazwie.

Tak więc ogólne nazwy, takie jak edit_foo_model, nie są dobrym pomysłem (ponieważ, co się dzieje, gdy chcesz dodać więcej kolumn do tego modelu), lepiej byłoby zgrupować kolumny w celu, np. update_foo_for_bar_support . Zwykle można pominąć dodawanie modelu, ponieważ każdy wie, że migracje obsługują modele, więc nie trzeba o tym wspominać w nazwie (tj. update_foo zamiast update_foo_model).

Co zwykle robię, to oddzielam różne zmiany. Tak więc, jeśli istnieje wiele różnych zmian w modelu, oddzieliłbym je na różne pliki migracji, jedną do dodawania kolumn i jedną do usuwania kolumn dla instancji.

+1

To brzmi jak sedno tego, co wymawiasz, z sensownymi nazwami, które odzwierciedlają zmiany, które wprowadzasz w modelu, zamiast ogólnego słowa edit_foo lub verbose add_bar_to_foo. na przykład add_bar_support_to_foo. A jeśli twoja migracja powoduje wiele niepowiązanych zmian, podziel ją. To ma sens :) – roryf

0

Chodzi o czytelność - aby szybko sprawdzić, za co jest odpowiedzialna migracja. Jeśli napiszesz zbyt wiele "danych" w nazwie, utrudni to skanowanie i wystrzelisz w stopę.

Więc .. czy to 1-2 zmiany, zapisz go w nazwie, jeśli istnieje zbyt wiele zmian, piszą update_foo_model (lub edit_foo_model)

+1

Problem polega na tym, że w późniejszym okresie życia trzeba wprowadzić podobną zmianę. Nie możesz mieć migracji o tej samej nazwie. –

+0

Rzeczywiście, jest to proste rozwiązanie dla większości przypadków, myślę, że prostota wspólnego przypadku jest tego warta. – amitkaz

2

Chciałbym podzielić wiele zmian schematu w wielu migracji! Następnie możesz łatwo nazwać pojedyncze migracje!