Rails:为导航设置默认 'current' css class?
Rails: set default 'current' css class for navigation?
使用这里的解决方法后还是有问题
Best way to add "current" class to nav in Rails 3
def nav_link(link_text, link_path)
class_name = current_page?(link_path) ? 'current' : ''
content_tag(:li, :class => class_name) do
link_to link_text, link_path
end
end
例如,我有 localhost/action1
和 localhost/action2
,每个都有一个导航按钮。
当用户在任一页面时,它都很好用。在这种情况下,其中一个按钮会有 'current' css class.
但是,如果我将 root_path
设置为其中之一,假设是 /action1
,那么当用户访问 localhost
时,action1
的按钮将不会'没有 current
class
如何解决设置为root_path
时添加缺少的current
cssclass?
您可能希望通过以下方式突出显示您的导航菜单 - 我很确定无论设置根路径如何,这都有效:
<ul>
<li class="<%= "current" if params[:controller] == "home" %>">Home</li>
<li class="<%= "current" if params[:controller] == "action1" %>">Action 1</li>
<li class="<%= "current" if params[:controller] == "action2" %>">Action 2</li>
</ul>
您不妨更换
params[:controller]
和
params[:action]
取决于您要突出显示的级别。我在最近的一个项目中使用了这个设置,它对我很有用。祝你好运!
您可以查询路由器本身,为您提供当前路径的 controller
和 action
,并将其与 params
.[=14= 的当前值进行比较]
def nav_link(text, path)
recognized = Rails.application.routes.recognize_path(path)
klass = "current" if recognized[:controller] == params[:controller] &&
recognized[:action] == params[:action]
content_tag(:li, class: klass) do
link_to(text, path)
end
end
使用这里的解决方法后还是有问题 Best way to add "current" class to nav in Rails 3
def nav_link(link_text, link_path)
class_name = current_page?(link_path) ? 'current' : ''
content_tag(:li, :class => class_name) do
link_to link_text, link_path
end
end
例如,我有 localhost/action1
和 localhost/action2
,每个都有一个导航按钮。
当用户在任一页面时,它都很好用。在这种情况下,其中一个按钮会有 'current' css class.
但是,如果我将 root_path
设置为其中之一,假设是 /action1
,那么当用户访问 localhost
时,action1
的按钮将不会'没有 current
class
如何解决设置为root_path
时添加缺少的current
cssclass?
您可能希望通过以下方式突出显示您的导航菜单 - 我很确定无论设置根路径如何,这都有效:
<ul>
<li class="<%= "current" if params[:controller] == "home" %>">Home</li>
<li class="<%= "current" if params[:controller] == "action1" %>">Action 1</li>
<li class="<%= "current" if params[:controller] == "action2" %>">Action 2</li>
</ul>
您不妨更换
params[:controller]
和
params[:action]
取决于您要突出显示的级别。我在最近的一个项目中使用了这个设置,它对我很有用。祝你好运!
您可以查询路由器本身,为您提供当前路径的 controller
和 action
,并将其与 params
.[=14= 的当前值进行比较]
def nav_link(text, path)
recognized = Rails.application.routes.recognize_path(path)
klass = "current" if recognized[:controller] == params[:controller] &&
recognized[:action] == params[:action]
content_tag(:li, class: klass) do
link_to(text, path)
end
end