Ruby on rails “遇到错误”;职位中的命名错误“显示”;

Ruby on rails “遇到错误”;职位中的命名错误“显示”;,ruby-on-rails,ruby,nomethoderror,Ruby On Rails,Ruby,Nomethoderror,我是windows中ruby on rails的新手。。我正在跟踪一些,但我遇到了错误 问题:在的部分内容中,我应该在@post中添加什么内容?。是我的方法还是我的另一个视图中的字段名称 “帖子中的NoMethodError#为nil:NilClass显示未定义的方法'item' 提取的源(第2行附近): 1. 2#此处显示错误 3. 4. 5提交日期:年月日 六, 控制器 class PostsController < ApplicationController def inde

我是windows中ruby on rails的新手。。我正在跟踪一些,但我遇到了错误

问题:在
的部分内容中,我应该在
@post
中添加什么内容?。是我的方法还是我的另一个视图中的字段名称

“帖子中的NoMethodError#为nil:NilClass显示未定义的方法'item' 提取的源(第2行附近): 1. 2#此处显示错误 3. 4. 5提交日期:年月日 六,

控制器

class PostsController < ApplicationController
    def index
    end
    def addItem
    end
    def create
      @post = Post.new(post_params)
      @post.save
      redirect_to @post
    end
    private
        def post_params
            params.require(:post).permit(:item, :description)
        end
    def show
        @post = Post.find(params[:id])
    end
end

show
方法移动到
private

show
方法移动到
private

检查模型(表)中是否有“item”字段检查模型(表)中是否有“item”字段

在Ruby中,您在
private
关键字下面添加的所有方法都将成为private方法

在您的情况下,show方法是私有方法,因此视图中不可用
@post
变量

将您的
posts\u控制器
代码更改为此

class PostsController < ApplicationController

    def index
    end

    def create
      @post = Post.new(post_params)
      @post.save
      redirect_to @post
    end

    def show
      @post = Post.find(params[:id])
    end

    def addItem
    end

    private
      def post_params
        params.require(:post).permit(:item, :description)
      end
end
class PostsController
在Ruby中,您在
private
关键字下面添加的所有方法都将成为private方法

在您的情况下,show方法是私有方法,因此视图中不可用
@post
变量

将您的
posts\u控制器
代码更改为此

class PostsController < ApplicationController

    def index
    end

    def create
      @post = Post.new(post_params)
      @post.save
      redirect_to @post
    end

    def show
      @post = Post.find(params[:id])
    end

    def addItem
    end

    private
      def post_params
        params.require(:post).permit(:item, :description)
      end
end
class PostsController
你的
@post
实例变量是
nil
这就是你出错的原因。你的
@post
实例变量是
nil
这就是你出错的原因。正如pramod所说,private下面的所有方法也将变为private:)正如pramod所说,private下面的所有方法也将变为private:)
class PostsController < ApplicationController

    def index
    end

    def create
      @post = Post.new(post_params)
      @post.save
      redirect_to @post
    end

    def show
      @post = Post.find(params[:id])
    end

    def addItem
    end

    private
      def post_params
        params.require(:post).permit(:item, :description)
      end
end