Undefined method `each' for nil:NilClass

Witam,

Uczę się Ruby on Rails z tutoriali z YT.

Mam stworzyć portfolio i wszystko szło dobrze, kiedy wyskoczył mi błąd podany w temacie.

W index.html.erb:

Lista postów

    <% @posts.each do |post| %>
  • <%= post.title%>
  • <% end %>

a w posts controller.rb:
class PostsController < ApplicationController
def index
@posts = Post.all
end
end

Proiłbym o pomoc, bo nie wiem jak sobie z tym poradzić.

Po tym co wkleiłeś wygląda ok. Wrzuć projekt na githuba, szkoda tracić czasu na zgadywanie.

Nie potrafie tego zrobić.
Nie rozumiem tego dodawania.
Utworzyłem repo na GitHub i jak dodać cały projekt Railsów?

Zaraz po stworzeniu repo na githubie, dostajesz listę komand do wklepania do terminala.

Obiekt @posts wywołujesz w akcji show, gdzie jest on zdefiniowany w akcji index.

Chodzi o to, że wcześniej nie odpalał mi się http://localhost:3000/posts, ponieważ był błąd z tym, że brakuje mu show.html.erb, a nie było napisane, że brakuje mu index.html.erb, wiec stworzylem ten plik show i wpisałem do niego nagłówek “Lista postów” i wszystko gra kiedy usunie się resztę oprócz tego nagłówka, ale gdy tylko próbuje dodać posty, to zaczyna wywalać błędy i zgodnie z tutorialem wszystko robie i dalej jest lipa

Prosiłbym o pomoc i chęć wyjaśnienia :slight_smile:

Podejrzewam że w pliku routes.rb powinieneś poprawić resource :posts na resources :posts, wtedy wszystko zgodnie z tutorialem powinno być :wink: Jeżeli chcesz poczytać jaka jest róznica między resource a resources odsyłam do dokumentacji railsów: http://guides.rubyonrails.org/routing.html#resource-routing-the-rails-default

Boże, dziękuje bardzo :smiley:

Takie głupie błędy, ale chcę się Railsów nauczyć choćby nie wiem co :slight_smile:

Chciałem jeszcze zapytać, ponieważ narazie ucze się Railsów z tutoriali na YT, czytam różne fora, czy warto zainwestować w jakąś polską książkę?

Od siebie polecę railstutorial.org (darmowy) i kursy na codeschool.com (30$ miesięczna subskrypcja, możesz anulować w dowolnej chwili, a subskrypcja zostaje do wyczerpania). Z polskich materiałów przerobiłem jeden wideo-tutorial i niestety był bardzo biedny w porównaniu do powyższych pozycji. Niestety wątpie aby były jakieś godne polecenia materiały po polsku. Po za Railsami polecam również książke 'Well Grounded Rubyist".

Witam,

Powróciłem do pisania dalej portfolio.
Lista postów wyświetla się prawidłowo, ale kiedy próbuje wejść w id istniejącego posta, to wyświetla mi znowu ten sam błąd.

W pliku routes.rb poprawiłem na resources.
Moglibyście pomóc?

Cały czas wydaje mi się problem w tym, że nie używam index.html.erb, bo strona o niego nie prosi, tylko interesuje ją show.html

Interesuje ją show, skoro próbujesz wejść na pojedynczego posta. Tymczasem w show znów iterujesz po postach.
W kontrolerze brak akcji show. (jeśli github jest aktualny?) Lista postów się wyświetla - plik index.html.erb pusty?
Zasadniczo: we views/posts index - lista (tutaj) postów, show - pojedynczy post, a w kontrolerze odpowiadające im akcje z odpowiednimi zmiennymi.