我为博客
设置了CRUD操作设置这是我的控制器
class BlogsController < ApplicationController
def new
@blog = Blog.new
end
def create
@blog = Blog.new(blog_params)
if @blog.save
redirect_to @blog
else
render 'new'
end
end
def show
@blog = Blog.find(params[:id])
end
def edit
end
def destroy
end
def index
@blogs = Blog.all.order(created_at: :desc)
end
private
def blog_params
params.require(:blog).permit(:title, :body, :image)
end
end
我的索引运行正常,但是当我点击“阅读帖子”链接时,我收到错误:未定义的局部变量或方法`blog'
我的show.html.erb的代码是
<html>
<head>
</head>
<body>
<div>
<h2><%= blog.title %></h2>
<h5><%= blog.body %></h5>
</div>
</body>
</html>
有人知道什么是错的吗?
答案 0 :(得分:1)
参考实例变量:
<h2><%= @blog.title %></h2>
<h5><%= @blog.body %></h5>
在您的控制器中,您正在设置实例变量@blog
。 Rails将在控制器中获取所有已定义的实例变量,并在视图中定义它们。这就是你需要使用实例变量的原因。