Rails 4.0&设计 - 强参数错误

时间:2013-06-26 09:09:40

标签: devise ruby-on-rails-4 strong-parameters

新手去铁路,所以请耐心等待。

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

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

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

根据错误判断我会创建一个继承自Devise :: registrationsController的registrations_controller.rb吗?我在那里指定了什么?

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

2 个答案:

答案 0 :(得分:7)

欢迎来到stackoverflow!

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

让它运行的两种可能性

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

答案 1 :(得分: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'