0

这里是新手,所以请耐心等待。

Rails 4 上带有 ruby​​ 2.0 的新应用程序,我安装了 Devise 并按照说明操作(默认 root 等)。github上的设计自述文件说它应该与rails4兼容,但是

  • db:migrate 失败,除非我在 User.rb 中注释掉 attr_accessible 行
  • 注释掉之后,我在尝试创建用户时收到“ActiveModel::ForbiddenAttributesError in Devise::RegistrationsController#create”错误。

我看到一些像这样的堆栈溢出问题,但很多答案直接跳进了一些复杂的话题。我知道我需要为批量分配指定允许的属性,但是如何?在哪里?哪些属性需要被允许,所有这些?只有那些我希望同时更改/创建的?

从错误来看,我会创建一个从 Devise::registrationsController 继承的 registrations_controller.rb 吗?我在其中指定了什么?

任何一步一步,新手友好的答案都非常感谢。我已经筋疲力尽地尝试从这里的答案和谷歌搜索的各种网站中尝试不同的代码。

4

2 回答 2

7

欢迎来到堆栈溢出!

问题是 attr_accessible 的功能在 rails 4.0 中发生了变化

2 让它运行的可能性

1 更新设计它可以处理 Rails 4.0

将此行添加到应用程序的 Gemfile:

gem 'devise', '3.0.0.rc' 

然后执行:

$ bundle

2 将 attr_accessible 的旧功能再次添加到 rails 4.0

尝试使用 attr_accessible 并且不要将其注释掉。

将此行添加到应用程序的 Gemfile:

gem 'protected_attributes'

然后执行:

$ bundle
于 2013-06-26T10:03:47.850 回答
0

添加以下宝石并进行捆绑安装对我有用

source 'https://rubygems.org'

gem 'rails', '4.0.2'
gem 'bootstrap-sass', '2.3.2.0'
gem 'devise', '3.0.0.rc' 
gem 'protected_attributes'
gem 'sqlite3'
于 2013-12-19T10:16:29.523 回答