0

因此,我无法弄清楚多态关联/继承资源发生了什么,并且文档使我感到困惑,因为我不知道它的确切含义-在文档中指出:

目前,Inherited Resources 是有限的,不允许您嵌套两个多态关联。

但它继续展示这个例子。

您甚至可以将它与嵌套资源一起使用:

  class CommentsController < InheritedResources::Base
    belongs_to :project do
      belongs_to :task, :file, :message, :polymorphic => true
    end
  end

-- 我的代码类似,但基本上,我需要可评论的项目,以及嵌套在项目下方的任务。-- 但是如果我执行以下操作,上面的代码只能半有效:

  class CommentsController < InheritedResources::Base

    belongs_to :project, :polymorphic => true do
      belongs_to :task, :polymorphic => true
    end

  end

但是当我执行上述操作时,我仍然在我的项目视图中丢失了诸如 parent? 之类的方法,我需要使用这些方法来确定资源是项目还是任务,以便我可以调用正确的参数表单部分(因为我在一个选项卡中有项目评论表单,然后是任务选项卡,它是用 ajax 加载的表单来评论该任务)-

所以我想知道我上面所做的是否正是文档所指的限制,(但问题是,当我像上面那样嵌套它时,我可以为项目和任务发表评论,如果我不这样做的话我得到一个找不到多态关联错误,所以它似乎有点工作,减去缺少的方法),如果这不是嵌套这个设置的正确方法,如果有人有任何创造性的解决方法想法。

4

1 回答 1

0

文档所说的是,您需要指定要在该嵌套情况下使用的每种资源类型。在示例中,根据您点击的路线,嵌套对象使用项目的任务、文件或消息。

在您的代码示例中,您只为每个嵌套使用一个资源,所以我不确定您要使用多态 => true 来完成什么。

于 2012-02-18T18:37:06.520 回答