Rails 4 中的“store_”方法有啥作用?

Posted

技术标签:

【中文标题】Rails 4 中的“store_”方法有啥作用?【英文标题】:What does the "store_" method do in Rails 4?Rails 4 中的“store_”方法有什么作用? 【发布时间】:2022-01-08 07:30:23 【问题描述】:

我正在将一个应用程序从 Rails 4.2 升级到 Rails 6。其中一个模型有这个

class Document < ActiveRecord::Base
    …
  skip_callback :save, :before, :store_document!, if: :skip_processing?

升级到 6 时,“:store_document!”抛出一个错误“”,在旧的 Rails 版本中没有抛出这个错误。 “store_document”不是我在任何地方定义的方法,所以我假设这是某种 Rails 的简写。我的问题是“store_xxx!”是什么意思?我如何在 Rails 6 中重现它?

【问题讨论】:

我认为填写“…”可能对这个问题有很大帮助 【参考方案1】:

这是 Active Record 中的store accessor

用法描述here

看起来它的参数在 Rails 6 中更改为

store_accessor(store_attribute, *keys, prefix: nil, suffix: nil)

所以我敢打赌你有一个

store :document

声明需要更新为正确语法的地方。

【讨论】:

就我没有将任何参数传递给“store_document!”而言我在Rails 4的时候,不清楚Rails 6范式中的属性如何填写。 你有这样的东西吗? store :document

以上是关于Rails 4 中的“store_”方法有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章

config.assets.version 在 Rails 中有啥作用?

Ruby 方法“to_sym”有啥作用?

更新方法不更新rails 4中的记录

这个rails form_for的这个类有啥问题?

有啥方法可以不在 Rails 中生成迁移文件

Rails 中的 Active Record 和 ORM 有啥区别?