2008-09-18 16 views
12

Śledziłem wraz z railscast odnośnie wtyczki restful_authentication.Zmiana nazwy kontrolerów w Railsach i czyszczenie generowanych treści

Polecił uruchamiając polecenie:

sesji skryptu/generowanie uwierzytelniony użytkownik

co zrobiłem, i wszystko wygenerowane „w porządku”, ale potem sesje nie będzie działać. ponownie sprawdzając stronę wspomina standard nazewnictwa i wymienione zaktualizowany kod, który stwierdził:

skrypt/generowania uwierzytelnionych sesji użytkownika

z sesjami ich liczbę mnogą.

Więc teraz mam session_controller.rb z SessionController w nim, ale myślę, wyznaczając standardy, to szuka SessionsController, powodując kod nie powiedzie się z powodu błędu „NameError w SessionsController # tworzyć”

Widzę problem, który jest dość oczywisty, ale nie wiem, jak to naprawić bez regenerowania zawartości? Czy istnieje sposób na odwrócenie procesu generowania, aby usunąć wszystkie zmiany dokonane przez pokolenie?

Próbowałem po prostu zmienić nazwy plików na sesja_controller z klasy e SessionsController, ale to się nie udało.

Podczas pisania tego, rozwiązałem swój własny problem. Musiałem zmienić nazwę sesji na sesje w pliku tras jako map.resource i zmienić nazwę katalogu widoku z sesji na sesje i zaktualizować ścieżkę session_path w pliku html.erb do session_path.

Rozwiązałem więc mój problem, ale moja odpowiedź dotycząca usuwania wygenerowanej treści nadal pozostaje. Czy jest możliwe złagodzenie treści?

Odpowiedz

14

Właściwie, script/destroy działa dla dowolnego generatora - generatory pracują czytając pewien rodzaj skryptu na temat tego, jakie pliki stworzyć; script/destroy po prostu odczytuje ten skrypt w odwrotnej kolejności i usuwa wszystkie utworzone pliki, o ile podajesz te same argumenty, które przekazałeś do script/generate.

Podsumowując: script/destroy authenticated user session usunąłoby dla ciebie wszystkie wygenerowane pliki, po których mógłbyś bez problemu uruchomić program script/generate user sessions.

1

Możesz po prostu wrócić do poprzedniej wersji w subversion i zacząć od nowa, prawda? dobrze? :-)

szyny ma script/destroy dla "ungenerating" rzeczy, ale podejrzewam, że będą działać tylko dla rzeczy szyny statków, a nie restful uwierzytelniania plugin.

Powiedziałbym, najlepiej jest znaleźć w swojej plików (lub grep -R jeśli nie używasz IDE) - wszystko to odnosi się do starego SessionController i zmienić go

2

Nigdy nie próbowałem script/destroy, ale jeśli cofasz zmiany, które właśnie wprowadziłeś, polecenie generate powinno dostarczyć listę dodanych plików i wprowadzonych zmian. Jeśli używasz jakiegoś systemu kontroli wersji, może to również pomóc w uruchomieniu statusu/diff.