model 已经搞定,通过 has_one 关联了几张表。 现在在 view 中循环输出二级菜单,是不是还得定义路由中的资源等才能用? rails 高级是高级了,所有都得从头学习呀。
菜单是菜单,路由是路由 一张表也可以,两张表也可以 假设用一张表 operates,然后加字段,parent_id,url,title: 然后自关联 has_many :children, :class_name => 'Operate', :foreign_key => 'parent_id' belongs_to :parent, :class_name => 'Operate', :foreign_key => 'parent_id'
然后呢,action 里你要把 @operates = Opeare.find(:all,:controller=>"parent_id IS NULL")
最后呢,view 里就
<% @operates.each do |operate|%> <%= link_to operate.tilte,operate.url %> #主菜单样式你自己弄 <% operate.children do |children|%> <%= link_to operate.tilte,operate.url %> #二级菜单样式你自己弄 <% end unless operate.children.blank?%> <% end %>
直接手敲的,可能有错,以前的菜单也类似这样做的,嘿嘿,只是给你简单的点一下。 具体你可以考虑把菜单缓存起来,不用每次都去查
@hunkguo 额,我不是这意思。。。bootstrap 我一直用 gem, 感觉很方便,我只是说新手学习的时候应该更多考虑实现原理,而不是靠套用 gem 来回避。。。