我理解在ActiveRecord中对于has_many:通过关联不能使用inverse_of,但我遇到了一个问题,我在Rails Admin gem中有很多模型,当我尝试编辑或创建新资源时,加载该页面导致模板渲染的无限递归。
问题是here
当我尝试删除
时accepts_nested_attributes_for :recipes, allow_destroy: true
它起作用,错误就消失了。
但是当我保留accepts_nested_attributes_for并放置
时,它也有效has_many :recipes, :through => :recipe_categorizations, :inverse_of => :categories
:最后的inverse_of。
这怎么可能? Isn的逆转不可用于:通过?它的存在会造成任何伤害还是被忽略?
如果有任何帮助,我会使用Rails 4。
答案 0 :(得分:1)
如果您未设置:inverse_of
记录,则关联将尽力与正确的反向匹配。自动反向检测仅适用于has_many
,has_one
和belongs_to
关联。
AssociationReflection::INVALID_AUTOMATIC_INVERSE_OPTIONS
常量中定义的关联的额外选项也会阻止自动找到关联的反转。
反向关联的自动猜测使用基于类名称的启发式方法,因此它可能不适用于所有关联,尤其是具有非标准名称的关联。
以下是设置反转的source。