ruby-on-rails - 使用Rails 4.0 Heroku推送attr_accessible错误

标签 ruby-on-rails heroku rubygems

我已将代码中的所有 attr_accessible 更改为强参数,因此它可以与 Rails 4.0 配合使用。我的应用程序在本地运行良好,但是当我推送到 Heroku 时,它提示我的代码中有 attr_accessible 。这是我得到的错误:

   Running: rake assets:precompile
   rake aborted!
   `attr_accessible` is extracted out of Rails into a gem. Please use new recommended protection model for params(strong_parameters) or add `protected_attributes` to your Gemfile to use old one.
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activemodel-4.0.0/lib/active_model/deprecated_mass_assignment_security.rb:14:in `attr_accessible'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/redactor-rails-0.3.5/lib/redactor-rails/orm/active_record.rb:20:in `block in extended'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/redactor-rails-0.3.5/lib/redactor-rails/orm/active_record.rb:14:in `class_eval'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/redactor-rails-0.3.5/lib/redactor-rails/orm/active_record.rb:14:in `extended'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/redactor-rails-0.3.5/lib/redactor-rails/orm/active_record.rb:9:in `extend'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/redactor-rails-0.3.5/lib/redactor-rails/orm/active_record.rb:9:in `included'
   /tmp/build_12jc2ej0437ky/app/models/redactor_rails/asset.rb:20:in `include'
   /tmp/build_12jc2ej0437ky/app/models/redactor_rails/asset.rb:20:in `<class:Asset>'
   /tmp/build_12jc2ej0437ky/app/models/redactor_rails/asset.rb:19:in `<top (required)>'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `block in require'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:213:in `load_dependency'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:329:in `require_or_load'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:462:in `load_missing_constant'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:183:in `const_missing'
   /tmp/build_12jc2ej0437ky/app/models/redactor_rails/document.rb:1:in `<top (required)>'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `block in require'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:213:in `load_dependency'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:329:in `require_or_load'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:462:in `load_missing_constant'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:183:in `const_missing'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/redactor-rails-0.3.5/lib/redactor-rails.rb:31:in `document_model'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/redactor-rails-0.3.5/app/controller/redactor_rails/documents_controller.rb:2:in `<class:DocumentsController>'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/redactor-rails-0.3.5/app/controller/redactor_rails/documents_controller.rb:1:in `<top (required)>'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `block in require'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:213:in `load_dependency'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:329:in `require_or_load'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:288:in `depend_on'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:206:in `require_dependency'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/engine.rb:465:in `block (2 levels) in eager_load!'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/engine.rb:464:in `each'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/engine.rb:464:in `block in eager_load!'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/engine.rb:462:in `each'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/engine.rb:462:in `eager_load!'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/engine.rb:347:in `eager_load!'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application/finisher.rb:56:in `each'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application/finisher.rb:56:in `block in <module:Finisher>'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/initializable.rb:30:in `instance_exec'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/initializable.rb:30:in `run'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/initializable.rb:55:in `block in run_initializers'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/initializable.rb:54:in `run_initializers'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application.rb:215:in `initialize!'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/railtie/configurable.rb:30:in `method_missing'
   /tmp/build_12jc2ej0437ky/config/environment.rb:5:in `<top (required)>'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `block in require'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:213:in `load_dependency'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application.rb:189:in `require_environment!'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application.rb:249:in `block in run_tasks_blocks'
   /tmp/build_12jc2ej0437ky/vendor/bundle/ruby/2.0.0/gems/sprockets-rails-2.0.0/lib/sprockets/rails/task.rb:54:in `block (2 levels) in define'
   Tasks: TOP => environment
   (See full trace by running task with --trace)
 !
 !     Precompiling assets failed.
 !

 !     Push rejected, failed to compile Ruby/Rails app

To <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b6d1dfc2f6ded3c4d9ddc398d5d9db" rel="noreferrer noopener nofollow">[email protected]</a>:scratch-cms.git
 ! [remote rejected] master -> master (pre-receive hook declined)

对发生的事情有什么想法吗?它可能是 gem 吗?这可能是设计吗?

最佳答案

我认为你是对的,这是因为devise。这是因为在rails-4中,ActiveModel::MassAssignmentSecurity已从ActiveModel中取出。但 devise 使用 attr_accessible,因此要使用它,只需在您的 Gemfile 中添加以下 gem 并尝试再次加载。

gem 'protected_attributes'

现在设备支持rails-4。尝试这个设计版本,它会对您有所帮助

gem 'devise', '3.0.0.rc'

编辑: 那我建议你用这个link它给了你一些想法。

关于ruby-on-rails - 使用Rails 4.0 Heroku推送attr_accessible错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17939676/

相关文章:

git - 从 CircleCI 推送到 Heroku 时出现协议(protocol)错误

git - 当我尝试将最新更改推送到 Heroku 时,为什么我的带指纹的 key 未被授权?

ruby - irb 不加载我创建的 gem

ruby-on-rails - 生成器脚本的问题 - 未初始化的常量 Rails::Generator::Commands::Base::ActiveRecord)

ruby-on-rails - 如果 Rails 中 2 个模型中的一个更新失败,则回滚

ruby-on-rails - Rails 上的自定义 ImageMagick 脚本(回形针?)

postgresql - 将本地 postgresql 转储导入 heroku 的最安全方法是什么?

ruby-on-rails - 如何让 Rails 使用 Yarn 包中包含的图像/字体?

ios - 升级操作系统和安装 xcode 后 cocoa pod 中的 Ruby 错误

ruby-on-rails - 安装 ZenTest gem 时出错