Sciąglnełam plugin - Authlogic i dziła wszystko ok, dla ułatwienia utworzyłam rusztowanie(controller, i widok - standardowo) postów aby część przenieść do admina, aby tylko on mógł dodawać posty.
tylko mam problem:
Po zalogowaniu przekierowuje mnie do metody zapisz. I jeśli jest ona pusta lub renderuje tylko zwykły napis to jest wszystko w porządku. Kolejnym moim krokiem było przekopiowanie indexu (aby metody które może zobaczyć tylko admin były w tym samym kontrolerze co logowanie- bezpieczenstwo)z kontrolera post do metody zapisz po to aby jak admin sie zaloguje mógł dodać post. i tu już zaczynają sie schody i wychodzi moja ogromna niewiedza bo wywala mi błą:
Showing app/views/user_sessions/zapisz.html.erb where line #13 raised:
You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each
Extracted source (around line #13):
10:
Dzialalnosc
11:
12:
13: <% @dolaczs.each do |dolacz| %>
14:
15:
<%=h dolacz.Imie %>
16:
<%=h dolacz.Nazwisko %>
Może ktoś wie gdzie robie błąd.
czy kontroler jest związany z tylko jedna tabelką. A może trzeba gdzieś podać ścieżkę do drugiej.
Tworzenie, usuwanie, edycja, list itp. powinno być w posts_controller a w nim
before_filter :require_user
Zaleca sie używania angielskich nazw jako nazw zmiennych np. @posts
Jak sam błąd wskazuje wywołujesz metode each na obiekcie nil zamiast na tablicy. w posts_controller powinno być
Pierwsze primo:
Nie używaj języka polskiego do nazywania metod, zmiennych itp. Przyznaj ze “dolaczs” wyglada conajmniej dziko.
Po drugie primo:
Idea zeby przeniesc metode zapisz dla postow z kontrollera postow do kontrolera user sessions jest mocno nietrafiona. Kontroler postow jest od postow, kontroler user session jest od user session. Jezeli chcesz zeby tylko admin mogl zapisywac posty to zrob before_filter dla akcji zapisz ktora sprawdza czy zalogowany user jest adminem. Samo przeniesienie akcji do kontrollera user session nic nie daje.
A teraz do rzeczy:
Czy w metodzie zapisz ustawiasz zmienna @dolaczs na cos? Sama z siebie sie nie wezmie.
Na koniec - polecam przejsc przez jakies tutoriale, poogladac railscasty itd - wtedy wszystko bedzie jasne :).
PS.
To tylko zbiór rad, więc nie traktuj tego jak atak. Wiadomo, że początki są ciężkie ale jak poczytasz trochę to potem będzie z górki.
Ja nad tym siedziałam blisko 2 dni dlatego jestem bardzo wdzięczna- juz teraz przekierowuje mnie na logowanie gdy sie chcę dostać do tego kontrolera.
Tą koncepcję kopiowania wzięłam z książki nie była moim własnym pomysłem.
Wszystko jak narazi dział ok.