1

我看了一下現有的問題,並且由於變化,我無法找到一個很好的解決方案,如何處理類別樹層次結構的habtm。 act-as-taggable-on強制代碼知道上下文,這是我不想要的。在這個網站和其他網站上已經多次提出這個問題,但確實還沒有完整的答案。如何處理與樹層次結構(類別)的rails3 habtm?

基本上我有與單個層次結構的一組類別:

  • 根類別1
    • 子類別3
    • 子類別4
  • 根類別2
    • 子類別5
    • 子類別6

形式部分略爲簡單。我列出了所有的根類別,然後爲每個孩子找到。這僅適用於單層結構,並不適合我的需求,因爲我寧願擁有接近無限的層次(即對嵌套層次無所謂的解決方案),但如果它增加了太多複雜性,則不需要。

這主要是因爲我不知道如何繼續。在這一點上,我可以得到關聯類別的簡單哈希,但沒有層次結構。我所看到的嵌套類別解決方案不適用於habtm環境,而是使用完整的樹本身。

回答

0

好吧,它不是那麼明顯,但祖先(又名has_ancestry:https://github.com/stefankroes/ancestry)管理得很好。

我的模特兒有HABTM關係類別的產品。類別是具有has_ancestry的層次結構。

一旦我得到了產品的類別,它的調用安排上收集的一個簡單的問題:

@ product.categories.arrange.each做| root_cats,sub_cats |

奇妙地工作。

簡而言之,anwer是祖先的寶石:https://github.com/stefankroes/ancestry