所以我很难弄清楚多态assoc/继承的资源发生了什么,文档让我很困惑,因为我不知道它的确切含义——在文档中它声明:
目前,继承的资源是有限的,不允许嵌套两个多态关联。
但它继续展示了这个例子。
您甚至可以将其与嵌套资源一起使用:
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?这样的方法?,在我的项目视图中,我需要使用它来确定资源是项目还是任务,这样我就可以以partial的形式调用正确的params(因为我在一个选项卡中有项目注释表单,然后是任务选项卡,ajax加载了一个表单来对该任务进行注释)——
所以我想知道我上面所做的是否正是文档所指的限制,(但问题是,当我像上面那样嵌套它时,我就可以为项目和任务发布评论,如果我不这样做,我就会得到一个找不到多态关联的错误,所以它似乎是有效的,减去缺失的方法),如果这不是嵌套这种设置的正确方式,如果有人有任何创造性的解决方案。
文档所说的是,您需要指定要在嵌套情况下使用的每种类型的资源。在本例中,嵌套对象使用项目的"任务"、"文件"或"消息",具体取决于所选路线。
在您的代码示例中,每个嵌套只使用一个资源,所以我不确定您试图用多态=>true实现什么。