2014-10-31 68 views
0

我明白,在ActiveRecord for has_many:通过关联不能与inverse_of一起工作,但我遇到了一个问题,我在Rails Admin gem中有很多通过模型,当我试图编辑或创建一个新资源时,页面导致模板呈现的无限递归。ActiveRecord has_many通过inverse_of导致rails管理员工作?

问题是here

当我试图消除

accepts_nested_attributes_for :recipes, allow_destroy: true 

它的工作和错误走了。

而且它工作时,我不停地accepts_nested_attributes_for并放置

has_many :recipes, :through => :recipe_categorizations, :inverse_of => :categories 

:inverse_of底。

这怎么可能?是不是inverse_of不可用于:通过?它的存在是否会造成任何伤害,还是只是被忽略?

如果有任何帮助,我正在使用Rails 4。

回答

1

如果您没有设置:inverse_of记录,则关联将尽其所能与自己的正确逆相匹配。自动逆向检测仅适用于has_manyhas_onebelongs_to关联。

AssociationReflection::INVALID_AUTOMATIC_INVERSE_OPTIONS常数中定义的关联上的其他选项也会阻止自动找到关联的逆。

逆关联的自动猜测使用基于类名称的启发式方法,因此它可能不适用于所有关联,特别是非标准名称的关联。

这是source设置逆。

+0

但是,为什么它会导致Rails管理员正确识别反转,如果它不适用于:通过?为了rails管理员的目的,是否有任何伤害? – 2014-10-31 02:22:23

+0

没有伤害。 – mohameddiaa27 2014-10-31 02:26:31