时间:2016-05-03 21:28:16

标签: ruby-on-rails

我为博客

设置了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>

有人知道什么是错的吗?

1 个答案:

答案 0 :(得分:1)

参考实例变量:

<h2><%= @blog.title %></h2>
<h5><%= @blog.body %></h5>

在您的控制器中,您正在设置实例变量@blog。 Rails将在控制器中获取所有已定义的实例变量,并在视图中定义它们。这就是你需要使用实例变量的原因。