尝试构建菜单的路径,需要一些关于多态关联的帮助

时间:2017-10-09 14:13:54

标签: ruby ruby-on-rails-4 activerecord polymorphic-associations

我正在尝试为CMS构建菜单,在其中,您有顶级部分(由不属于另一部分确定),其中包含更多部分或navigation_items的列表。

我无法将它全部连接起来。

我有以下型号:

section.rb:

class Section < ActiveRecord::Base
  belongs_to :section, polymorphic: true
  has_many :navigation_items
end

navigation_item.rb:

class NavigationItem < ActiveRecord::Base
  belongs_to :section
end

我能不能得到一些帮助,因为我希望它可以正常工作?

1 个答案:

答案 0 :(得分:0)

好的,所以我明白了,

我需要进行迁移:

def change
    change_table :sections do |t|
      t.references :items, polymorphic: true, index: true, on_delete: :nullify, on_update: :cascade
      t.references :section, index: true, on_delete: :nullify, on_update: :cascade
    end
end

然后为类做:

class Section < ActiveRecord::Base
  belongs_to :items, polymorphic: true
  has_many :navigation_items, as: :items
  has_many :sections, as: :items
end

class NavigationItem < ActiveRecord::Base
  belongs_to :items, polymorphic: true
end