Ruby on rails “遇到错误”;职位中的命名错误“显示”;
我是windows中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
的部分内容中,我应该在@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