如何根据当前网址更改视图页面的内容

时间:2010-10-17 16:19:07

标签: ruby-on-rails ruby-on-rails-3

我的应用有一个带选项的导航栏: -     “创建帖子”,“显示我所拥有的帖子”,“显示所有帖子”
但是,当我导航到“显示我所拥有的帖子”页面时,导航栏应该不再存在 显示选项“显示我拥有的帖子”。是任何api,例如current_url_path 我可以将current_url_path api的输出与“desired_url_check_path”进行比较。并相应地修改视图输出。

2 个答案:

答案 0 :(得分:1)

有link_to_unless_current函数:

<%=
   link_to_unless_current("Show posts owned by me", { :controller => "posts", :action => "index" }) do
      # Whatever code you want to occur
   end
%>

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to_unless_current

您还应该查看link_to_unless函数。

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to_unless

答案 1 :(得分:0)

嘿萨兰。是的,这是我放在application_helper.rb中的帮手:

def main_nav_select(name, url)
  url = params[:q].blank? ? url : "#{url}?q=#{params[:q]}"
  if current_page? url
    content_tag(:li, "#{link_to(name, url)}", :class => 'selected')
  else
    content_tag(:li, "#{link_to(name, url)}")
  end
end

真正的问题是curent_page? url

我这样实现它:

= main_nav_select 'Main Page', admin_banners_path