voorbeeld rails guide, klik op de knop save post, console laat dit bericht zien:
Begin POST “/posts” voor 127001 op 25-12-2013 22:42:04 +0800
Verwerking door PostsController#create als HTML-parameters:
{“utf8″=>”✓”, “authenticity_token”=>”CLalUww3gqnSlED0AWdou6P/U2qya
vPqDiBANQOuYgA=”, “post”=>{“title”=>”11”, “text”=>”22”},
“commit”=>”Bericht opslaan”} (0,0 ms) begin transactie (0,0 ms)
terugdraaitransactie Omgeleid naar http:// 127001:3000/posts
Voltooid 302 Gevonden in 16 ms (ActiveRecord: 0,0 ms)Gestart met GET “/posts” voor 127001 op 25-12-2013 22:42:04 +0800
Verwerking door PostsController#index als HTML weergegeven
posts/index.html.erb binnen lay-outs/applicatie (15,6 ms) Voltooid 500
Interne serverfout in 31 msActionView::Template::Error (ongedefinieerde methode `elk’ voor
nul:NilClass):<th>Text</th> </tr> <% @posts.each do |post| %>
=============================================== =======
routes klopt, waarom is post nihil? rails 4.0.2 robijn 2.0
Antwoord 1, autoriteit 100%
In je berichtencontroller moet je @posts
definiëren, wat op basis van de fout niet is.
# app/controllers/posts_controller.rb
class PostsController < ApplicationController
def index
@posts = Post.all
end
end
Aangezien @posts
niet is gedefinieerd, zal het aanroepen van each
erop undefined method
each’ genereren voor nil:NilClass`.
Antwoord 2, autoriteit 34%
Om meer over deze fout uit te leggen wanneer u deze tegenkomt
undefined method `each' for nil:NilClass
De fout is duidelijk klachten dat u elke methode op iets hier (@posts) belt, wat nul is. Dat betekent dat u het niet in uw controller hebt gedefinieerd. Omdat je het niet hebt bepaald, is dat de reden waarom het de ongedefinieerde methode voor Nil-klasse klagen.
Controleer of u een exemplaarvariabele van uw weergave noemt? U moet in uw controller definiëren om toegankelijk te zijn in het meningen.
Soms krijg je deze foutmelding ook als je een privémethode in je controller belt.
Antwoord 3, Autoriteit 6%
Probeer dit te vervangen:
<% @posts.each do |post| %>
met
<% Post.all.each do |post| %>