Ruby on rails 链接帮助程序、当前页面和导航
我正试图通过检查控制器,在要选择的页面上保留一个选项卡。 也就是说,显示Ruby on rails 链接帮助程序、当前页面和导航,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我正试图通过检查控制器,在要选择的页面上保留一个选项卡。 也就是说,显示产品控制器的任何页面都应保持产品选项卡处于选中状态。 我似乎找不到正确的方法。 我正在考虑制作一个helper方法,但是将helper放入我的link\u到helper中似乎有点棘手。以下是我对如何使其工作的猜测: <%= link_to "Products", products_path, current_controller?('products') ? :class => 'selected' %>
产品
控制器的任何页面都应保持产品
选项卡处于选中状态。
我似乎找不到正确的方法。
我正在考虑制作一个helper方法,但是将helper放入我的link\u到helper中似乎有点棘手。以下是我对如何使其工作的猜测:
<%= link_to "Products", products_path, current_controller?('products') ? :class => 'selected' %>
”已选择“%”
有人有更好的主意吗?而且问题不会只出现在一个地方,你会有许多选项卡,每个选项卡都会有一些规则,规定哪些控制器+动作组合将被激活/选择
这是一个常见的问题,有些人也为此编写了“插件”
我建议你写信给助手。制作你自己的迷你DSL。自己决定什么是容易看的、好看的:
<%= link_to_tab_for("Products", products_path, :controller => "sss", :action => "", :other_html_options => {})
当然,不妨尝试一下你喜欢的上述方法 谢谢你的帮助,我正在做类似的事情。法学博士
def link_to_tab_for(name, path, options)
controller = options.delete(:controller)
action = options.delete(:controller)
klass = [].push(options[:class]).compact
if current_controller?(controller) && (action ? current_action?(action) : true)
klass.push("selected")
end
options[:class] = klass.empty ? "" : klass.join(" ")
link_to(name, path, options)
end