【问题标题】:block in assert_valid_keys: Unknown key: :optional (ArgumentError)assert_valid_keys 中的块:未知键::可选(ArgumentError)
【发布时间】:2017-07-28 14:14:34
【问题描述】:

在将我的最新提交推送到 heroku 时,我一直收到此错误,并且似乎无法找到它的来源:

app[web.1]: /app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.5.1/lib/active_support/core_ext/hash/keys.rb:75:in `block in assert_valid_keys ':未知键::可选。有效键是::class_name, :anonymous_class, :foreign_key, :validate, :autosave, :dependent, :primary_key, :inverse_of, :required, :foreign_type, :polymorphic, :touch, :counter_cache (Argum entError)

似乎无法弄清楚为什么在开发过程中不会出现此错误。有什么想法吗?

【问题讨论】:

  • 你能发布你的模型吗?另外,您使用的是哪个 Rails 版本?
  • @Pavan 我使用的是 Rails 版本 4.2.5.1,除非我必须升级版本,否则我将提供模型,尽管 :optional 方法/密钥未在其中任何一个中使用。
  • 您的代码中似乎有optional 键。如果是这样,它已被添加到 Rails 5.x
  • @Pavan 我不记得使用过optional 键,因为我的代码在生产环境中运行良好,除了最近几天。这是由于使用了旧版本的 Rails 造成的吗?

标签: ruby-on-rails ruby heroku


【解决方案1】:

我发现如果我将可选键放在模型的has_many 一侧,我会收到此错误。它仅针对belongs_to 端定义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    相关资源
    最近更新 更多