Ruby on Rails - 链接助手、current_pages和导航



我正在尝试通过检查控制器在要选择的页面上保留一个选项卡。即,显示Products控制器的任何页面都应保持选中Product选项卡。我似乎找不到正确的方法。我正在考虑制作一个帮助程序方法,但是将帮助程序放入我的link_to助手中似乎有点棘手。这是我对如何使其工作的猜测:

<%= link_to "Products", products_path, current_controller?('products') ? :class => 'selected' %>

有人有更好的主意吗?

问题不仅出在一个地方,你还会有很多标签,每个标签都有关于它将被激活/选择哪些控制器+操作组合的规则。

这是一个常见的问题,有些人也为此编写了"插件"。

我建议你写助手。制作您自己的迷你DSL。自己决定什么是容易和好看的:

<%= link_to_tab_for("Products", products_path, :controller => "sss", :action => "", :other_html_options => {})

下一步,在帮助程序/应用程序.rb 中实现此方法

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

当然,您可以根据自己的喜好尝试上述方法。

相关内容

  • 没有找到相关文章

最新更新