请参阅此页面,因为我有同样的问题:OmniAuth Railscast 教程中的 DangerousAttributeError:create is defined by ActiveRecord
然而,对于 Rails 来说相当新,我不太确定如何从数据库中删除他们所说的字段。换句话说,该帖子中的任何地方都没有描述逐步简洁的方法。
下面的帖子实际上是一个适当的解决方案,但不清楚他在写时指的是什么:“rails g migration remove_silly_authentication_fields_which_should_not_be_there”不确定“silly_authentication_fields_which_should_not_be_there”到底是什么。
这是我所指的帖子:
因此,为了完成问题,您需要使用以下命令创建迁移:
rails g 迁移 remove_silly_authentication_fields_which_should_not_be_there
看起来像这样:
类 DropSillyControllerAttributes < ActiveRecord::Migration def change remove_column :authentications, :index remove_column :authentications, :create remove_column :authentications, :destroy end end
并使用通常的方式运行它:
耙分贝:迁移
或者,您应该能够运行:
耙分贝:回滚
要回滚刚刚对数据库所做的更改,并且:
rails d 脚手架认证
要删除所有文件,然后运行:
rails g 脚手架身份验证 user_id:integer provider:string uid:string
并手动做其他事情
顺便说一句,我自己也做了同样的事情。