在本指南中:http://guides.rubyonrails.org/getting_started.html
关于5.7显示帖子主题,在创建show.html.erb
文件后,我应该在提交表单时收到错误:ActiveModel::ForbiddenAttributesError
,而是在{{1}中获得NoMethodError
}}
有谁能告诉我我做错了什么,或解决这个问题?
Posts#show
答案 0 :(得分:3)
你的show方法是私有的,将它移到控制器中的private关键字上方,你应该全部设置好。如下。..
def PostsController < ApplicationController
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
答案 1 :(得分:1)
当您使用private
时,private
下面的所有方法都将成为私有方法。
但是,另一种方法是只说private :post_params
,以使post_params
变为私有。
http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Classes#Declaring_Visibility
答案 2 :(得分:0)
确保您在show
中定义了PostsController
方法。
def show
@post = Post.find(params[:id])
end