这个错误是啥意思 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的主要内容,如果未能解决你的问题,请参考以下文章