【问题标题】:AssociationTypeMismatch with Expected Type on Nested Model FormsAssociationTypeMismatch 与嵌套模型表单上的预期类型
【发布时间】:2010-05-24 19:51:41
【问题描述】:

我在做嵌套模型表单时遇到了这个异常:

ActiveRecord::AssociationTypeMismatch in RecipesController#update 
  Ingredient(#35624480) expected, got Ingredient(#34767560)

涉及的模型是配方和成分。配方 has_many 和 accept_nested_attributes_for :ingredients, which belongs_to :recipe.

我在尝试 _destroy (=1) 用于配方编辑/更新的嵌套成分表单上的一种预先存在的成分时遇到此异常。

这没什么意义,主要是因为关联类型符合预期(由异常自己承认)。

更没有意义的是works just fine in a functional test

此外,如果我重新发布表单(通过更新时的浏览器刷新),它有时会起作用。如果我重新启动(开发)网络服务器,它也将起作用。

有什么想法可能导致这种情况,或者我应该寻找什么?

【问题讨论】:

  • 您是否比较了第一次(失败)和第二次(成功)更新的日志条目?
  • 不,但这是个好主意。谢谢。
  • 删除之前的日志是相同的;失败的日志有异常,成功的有删除SQL。

标签: ruby-on-rails ruby exception nested-forms


【解决方案1】:

这通常意味着“rails 未能成功重新加载一次” 在您的环境/xxx 文件中,您可以将其更改为不重新加载或允许重新加载。

【讨论】:

  • 嗨@rogerdpack;你指的是 config.cache_classes 属性吗?
  • 这绝对是一个类加载问题;我在开发中将 config.cache_classes 切换为 true,问题就消失了。
  • 看起来你修好了。对我来说,这意味着我的插件没有重新加载正确或有些奇怪......
【解决方案2】:

有时可以通过添加正确的要求来解决此问题,从您的代码中使用该类的位置开始

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多