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插件中的代码。我认为这是需要修改的。这里有html代码,但我认为这与它无关 你能告诉我什么需要添加在其他使父亲触发他们的链接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
谢谢。我不知道你问题的直接答案,但语义菜单似乎过时了 查看
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