这个错误是啥意思 ActiveRecord::DangerousAttributeError

Posted

技术标签:

【中文标题】这个错误是啥意思 ActiveRecord::DangerousAttributeError【英文标题】:What means this error ActiveRecord::DangerousAttributeError这个错误是什么意思 ActiveRecord::DangerousAttributeError 【发布时间】:2014-03-24 15:11:24 【问题描述】:

任何想法这个错误是什么意思?

ActiveRecord::DangerousAttributeError (delay is defined by ActiveRecord):
app/models/issue.rb:849:in `relations'
app/controllers/issues_controller.rb:118:in `show'

谢谢

【问题讨论】:

可能是sidekiq gem。请参阅下面的答案。 【参考方案1】:

老兄,你在使用sidekiq gem 吗? Sidekiq 使用一种称为“延迟”的方法导致此问题。删除 sidekiq gem 将解决您的问题,或者,

把这个放在你的Gemfile:

    gem 'safe_attributes'

然后做bundle install

更多信息:here 可以找到解决方案here

更新:或者,您也可以安装 redmine_sidekiq 插件,它也可以解决问题。

UPDATE-2:创建了一个解决问题的 sidekiq gem 的分支。请找到它here。按照pull request 中的说明进行操作。

希望这会有所帮助!

【讨论】:

【参考方案2】:

Issue 模型中可能有 delay 列。您应该重命名它,因为此名称由 ActiveRecord 在内部使用。

【讨论】:

【参考方案3】:

来自documentation,此错误是“当属性具有 Active Record 保留的名称时引发(当属性具有 Active Record 实例方法之一的名称时)。”

所以基本上属性delay 是由ActiveRecord 保留的属性,最好将其命名为其他名称,否则会遇到命名冲突。

【讨论】:

感谢 omnikron,但我正在使用 redmine,我无法重命名此属性,我可以有任何其他解决方案来解决此冲突。 可以在app/models/issue.rb:849中显示相关代码吗? @relations ||= (relations_from + Relations_to).sort 属性延迟在表relationship_issues中 嗯,这并不能真正帮助诊断问题,但您可以尝试在类似问题上使用this answer 中提到的 gem。

以上是关于这个错误是啥意思 ActiveRecord::DangerousAttributeError的主要内容,如果未能解决你的问题,请参考以下文章

这个 NSZombie 错误消息是啥意思?

Django插入:这个错误是啥意思

这个错误在 nhibernate 中是啥意思

这个 MSVC++ 编译错误是啥意思

这个错误是啥意思?

嗨,只想知道这个错误是啥意思