Ruby on rails 语义菜单根语言 需要“rubygems” 需要“操作视图” 需要“主动支持” 类菜单项 包括ActionView::Helpers::TagHelper, ActionView::Helpers::UrlHelper 属性访问器:子项,:链接 cattr_访问器:请求 def初始化(标题、链接、级别、链接选项={}) @title、@link、@level、@link\u opts=title、link、level、link\u opts @儿童=[] 结束 def add(标题、链接、链接选项={}、&block) 返回(MenuItem.new(标题,链接,@level+1,链接选项))执行添加| @children“menu_header_level_”+@level.to_s)+children_输出,({:class=>'active'}如果激活?).html_安全 结束 def级 “菜单u级别35;{@level}” 结束 def child_输出 children.empty??“”:content_标记(:ul,@children.collect(&:to_s).join.html_safe,:class=>level_class) 结束 def激活? 在当前页面上是否有?(&:活动?)| |? 结束 当前页面上的def? #是否将其设置为当前页面?在UrlHelper中定义 #当前页面?(@link) 假的 结束 #def请求 #@@1请求 #结束 结束 类语义菜单'菜单'}。合并选项 @级别=0 @儿童=[] 如果给定块,则屈服于自身? 结束 def至美国 content_标签(:ul,@children.collect(&:to_s).join.html_safe,@opts).html_safe 结束 结束

Ruby on rails 语义菜单根语言 需要“rubygems” 需要“操作视图” 需要“主动支持” 类菜单项 包括ActionView::Helpers::TagHelper, ActionView::Helpers::UrlHelper 属性访问器:子项,:链接 cattr_访问器:请求 def初始化(标题、链接、级别、链接选项={}) @title、@link、@level、@link\u opts=title、link、level、link\u opts @儿童=[] 结束 def add(标题、链接、链接选项={}、&block) 返回(MenuItem.new(标题,链接,@level+1,链接选项))执行添加| @children“menu_header_level_”+@level.to_s)+children_输出,({:class=>'active'}如果激活?).html_安全 结束 def级 “菜单u级别35;{@level}” 结束 def child_输出 children.empty??“”:content_标记(:ul,@children.collect(&:to_s).join.html_safe,:class=>level_class) 结束 def激活? 在当前页面上是否有?(&:活动?)| |? 结束 当前页面上的def? #是否将其设置为当前页面?在UrlHelper中定义 #当前页面?(@link) 假的 结束 #def请求 #@@1请求 #结束 结束 类语义菜单'菜单'}。合并选项 @级别=0 @儿童=[] 如果给定块,则屈服于自身? 结束 def至美国 content_标签(:ul,@children.collect(&:to_s).join.html_safe,@opts).html_safe 结束 结束,ruby-on-rails,Ruby On Rails,你好。我试图改变语义菜单根的行为。单击其中一个根时,菜单将下拉并显示所有子项。我希望的是,当我单击时,它会转到默认页面,然后显示子项。语义菜单似乎只允许链接到较低级别,而不允许链接到主要级别。根链接只有在没有孩子时才起作用 下面的代码是Ruby插件中的代码。我认为这是需要修改的。这里有html代码,但我认为这与它无关 你能告诉我什么需要添加在其他使父亲触发他们的链接 谢谢。我不知道你问题的直接答案,但语义菜单似乎过时了 查看SimpleNavigationgem: require 'rubyge

你好。我试图改变语义菜单根的行为。单击其中一个根时,菜单将下拉并显示所有子项。我希望的是,当我单击时,它会转到默认页面,然后显示子项。语义菜单似乎只允许链接到较低级别,而不允许链接到主要级别。根链接只有在没有孩子时才起作用

下面的代码是Ruby插件中的代码。我认为这是需要修改的。这里有html代码,但我认为这与它无关

你能告诉我什么需要添加在其他使父亲触发他们的链接


谢谢。

我不知道你问题的直接答案,但语义菜单似乎过时了

查看
SimpleNavigation
gem:

require 'rubygems'
require 'action_view'
require 'active_support'

class MenuItem
  include ActionView::Helpers::TagHelper,
          ActionView::Helpers::UrlHelper

  attr_accessor :children, :link
  cattr_accessor :request

  def initialize(title, link, level, link_opts={})
    @title, @link, @level, @link_opts = title, link, level, link_opts
    @children = []
  end

  def add(title, link, link_opts={}, &block)
    returning(MenuItem.new(title, link, @level +1, link_opts)) do |adding|
      @children << adding
      yield adding if block_given?
    end
  end

  def to_s
    content_tag(:li, content_tag(:div, link_to(@title, @link, @link_opts), :class => "menu_header_level_"+@level.to_s) + child_output, ({:class => 'active'} if active?)).html_safe
  end

  def level_class
    "menu_level_#{@level}"
  end

  def child_output
    children.empty? ? '' : content_tag(:ul, @children.collect(&:to_s).join.html_safe, :class => level_class)
  end

  def active?
    children.any?(&:active?) || on_current_page?
  end

  def on_current_page?
    # set it for current_page? defined in UrlHelper
    # current_page?(@link)
    false
  end

  # def request
  #     @@request
  #   end
end

class SemanticMenu < MenuItem

  def initialize(rq, opts={},&block)
    @@request   = rq
    @opts       = {:class => 'menu'}.merge opts
    @level      = 0
    @children   = []
    yield self if block_given?
  end

  def to_s
    content_tag(:ul, @children.collect(&:to_s).join.html_safe, @opts).html_safe
  end
end