我是 Ruby on Rails 的新手,并且正在关注 rubyonrails 指南。我不确定我做错了什么。
Post_controller.rb
class PostsController < ApplicationController
def index
@posts = Post.all
end
def new
end
def create
@post = Post.new(post_params)
@post.save
redirect_to @post
end
def show
@post = Post.find(params[:id])
end
private
def post_params
params.require(:post).permit(:title, :text)
end
end
我的 index.html.erb
<h1>Listing posts</h1>
<table>
<tr>
<th>Title</th>
<th>Text</th>
</tr>
<% @posts.each do |post| %>
<tr>
<td><%= post.title %></td>
<td><%= post.text %></td>
</tr>
<% end %>
</table>
我收到的错误
Showing c:/Sites/blog/app/views/welcome/index.html.erb where line #9
raised:
undefined method `each' for nil:NilClass
Extracted source (around line #9):
<th>Text</th>
</tr>
<% @posts.each do |post| %>
<tr>
<td><%= post.title %></td>
<td><%= post.text %></td>
如您所见,我在 def 索引下的变量“@posts”与我的变量“@posts.each do |post|”相关。不知道为什么这不起作用。