form_for, form_tag i error 500

Przy próbie utworzenia jakiegokolwiek formularza otrzymuje internal server error 500. Przy czym na jednym komputerze działa normalnie, a error 500 jest na innym.

Co może powodować problem? Jak szukać?

Prosty widok, na którym pojawia się problem:

[code]

Logowanie do systemu
<% form_tag do %>
  <p>
    <label for="name">Nazwa:</label>
    <%= text_field_tag :name, params[:name] %>
  </p>

  <p>
    <label for="password">Hasło:</label>
    <%= password_field_tag :password, params[:password] %>
  </p>

  <p>
    <%= submit_tag "Zaloguj" %>
  </p>
<% end %>
[/code]

Tak na wstepie to nie zaszkodziłoby podanie form_tag argumentu ze ścieżką.

A poza tym to “500 internal server error” mniej więcej tyle mówi co “nie działa”. Dawaj backtrace.

form_tag ma prowadzić do tej samej strony/akcji, na której się znajduje, więc parametr raczej zbędny (z parametrem też nie działa).

Pisząc backtrace masz na myśli to co pojawia się na konsoli po uruchomieniu serwera z opcją debug? Jeśli tak to zamieszczam to tutaj: http://pastebin.pl/10346 , w development.log jest to samo.

A ten kod to co ma niby robić? <%= debug(request.session.instance_variable_get("@data")) %>

jak chcesz wyświetlić co jest w sesji, to napisz <%= debug(session) %>

Szukam sposobu na zdebugowanie mojej aplikacji jako początkujący. Prosiłbym o dokładniejszą odpowiedź.

Wklejenie <%= debug(session) %> do dowolnego widoku powoduje error 500. To chyba oznacza, że nic nie ma w session?

Dziwne jest, że wstawienie polecenia form_tag do widoku, mającego zwrócić prosty znacznik HTML powoduje problem. Co mogę zrobić? Co ewentualnie pokazać?

Log jest zapisywany w log/development.log, tam powinieneś mieć odpowiedź co jest nie tak.

Przeanalizowałem loga, pozmieniałem różne rzeczy w widoku, na koniec przerobiłem widok tak, że wygląda identycznie jak na samym początku i działa. Magia Rails. Może pomógł wielokrotny restart serwera…

Dzięki za podpowiedzi.

Czarownice siedzą w helperach. Na stos!