参考 Ruby on rails 5 Tutorial 4th 教程,在第二章 toy_app 中,new user 发生错误。Google 半天还是没能解决。 错误信息如下:
现在已经解决,来自于 stackoverflow 原因:暂时不是很清楚。说是在 Chrome 和 Opera 游览器中会出现问题,在 Firefox 和 IE 中没有该问题。 本人使用的是 Opera 游览器。出现错误。 解决方法:在 user_controller.rb 中添加一行代码,protect_from_forgery 既可解决
class UsersController < ApplicationController
protect_from_forgery
....
新手遇到这个问题最常见的原因:
<%= csrf_meta_tags %>
。// require rails-ujs
。楼主搜到一个“方案”不去了解原理就认为“解决了”,不是好的学习习惯。
引申阅读:
Ruby on Rails 安全指南 / 3 跨站请求伪造(CSRF) https://ruby-china.github.io/rails-guides/security.html#cross-site-request-forgery-csrf
好的,谢谢大佬。受教了 User 资源是使用命令行自动生成的。在更换游览器后就没有发生该错误了。 的确是您发的这两个原因,应该是 cookie 造成的,刚开始学不懂的地方确实很多。
$ rails generate scaffold User name:string email:string #利用脚手架生成User资源
$ rails db:migrate #迁移数据库
我把代码上传到 bitbucket 上面了,大佬您有时间看看 非常感谢。 https://github.com/Noprint/toy_app