2011-10-17 59 views
0

我存储在我的菜单结构,数据库表,如何加载数据:的Rails 3 select_tag -

id | item | par 
1 | A | 0 
2 | B | 0 
3 | C | 1 
4 | D | 1 

我认为安博的方式,如何让我的选择选项的语句:

A 
B 
A -> C 
A -> D 

我能够使语句为:

A 
B 
C 
D 

使用下面的命令:

<%select(“menu_item”,“menu_id”,Menu.all.collect {| p | [p.item, p.id]},{:include_blank => ''})%>

但我不能找到一种方法,如何实现语句作为中间例子.. 。我想问你 - 有谁能帮我解决这个问题吗?

预先感谢您。

+1

你是否实现自己的单表继承?如果是这样,我建议看看https://github.com/stefankroes/ancestry。然后,您可以使用所有它的奇特帮助器方法来获取每个具有任何菜单项的所有子项。 – Thilo

回答

0

你可能需要一个助手来创建所需的标签。所以,如果你命名你的帮手full_item_name,你会有

<%= select("menu_item", "menu_id", Menu.all.collect {|p| [ full_item_name(p.item), p.id ] }, {:include_blank => ''}) %> 
+0

是的,我知道你的意思,但现在我正在努力的方式,如何获得数据(如何使full_item_name助手) – user984621

+0

你能告诉我们你的模型是什么样子吗? – Larsenal

+0

我的模型看起来像在第一篇文章中 - 当然我在我的数据库表中有更多的列,但这些并不重要 – user984621