我一直在关注这个Rails教程: http://guides.rubyonrails.org/getting_started.html 5.7节告诉我,我应该期待一个ActiveModel :: ForbiddenAttributesError 问题是,我没有得到错误.它没有permit关键字. 我的create方法
http://guides.rubyonrails.org/getting_started.html
5.7节告诉我,我应该期待一个ActiveModel :: ForbiddenAttributesError
问题是,我没有得到错误.它没有permit关键字.
我的create方法如下所示:
def create @post = Post.new(post_params) @post.save redirect_to @post end
我正在使用Rails 4.0和Ruby 2.0.知道为什么强参数安全功能不起作用?
文档实际上是误导,你是对的.如果您按照第5.6章所示编码控制器
def create @post = Post.new(post_params) @post.save redirect_to @post end private def post_params params.require(:post).permit(:title, :text) end
你已经允许使用参数标题和文字了.
下一章(5.7)假设您已经没有使用permit-method.
如果您将第2行更改为:
@post = Post.new(post_params)
如截图所示,将抛出错误.此外,第5.7章中的“修复”并没有像您那样定义新的私有方法post_params,而是应用内联修复.
@post = Post.new(params[:post].permit(:title, :text))