【问题标题】:inherited resource belongs_to & polymorphic troubles继承资源belongs_to & 多态问题
【发布时间】:2012-02-18 18:15:44
【问题描述】:

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

目前,继承资源是有限的,不允许您嵌套两个多态关联。

但它继续展示这个例子。

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

  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 来评论该任务)--

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

【问题讨论】:

    标签: ruby-on-rails ruby polymorphic-associations inherited-resources


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      相关资源
      最近更新 更多