how to read anchor in controller

Anybody no how to read the anchor of a request?
I make an redirect_to like this:
redirect_to :controller=>"foo" :action=>"index" :anchor=>"bar"
then in action index,I try to read url like this:
finally I get c and ac the value I want,but fail to get an

Any thought?Thanks!

You recieve the parameter by using params in your controller


Posted via

I try your codes,but the result is the same,is it a bug?

You do not have permission to post to group rubyonrails-talk. You
may need to
join the group before being allowed to post, or this group may not be
open to

Zach Inglis
→ Blog --
→ Company --
→ Portfolio --

Ooops, wrong copy and paste.

How about you tell us WHAT anchor is returning. Nil?

Are you sure anchor is set?

Zach Inglis
→ Blog --
→ Company --
→ Portfolio --

I'm not so sure,but I try two ways to fire a request with an anchor:
1) I use browser to send something like:
2) I also use
redirect_to :controller=>"foo" :action=>"index" :anchor=>"bar"
And I use[:anchor]) to monitor the result,and what
I get is always a blank row.By the same time,I have[:controller]) get the right value there.

and I also got a correct redirect url with an anchor I set,so I think
the anchor is set at least by the redirect way. And I think the
problem is params didn't get it. The proof is when I use
params.to_json,what i get is something like:
{action: "index", controller: "foo"},but no anchor.

Are you completely sure this works? As far as I know, browsers don't
pass anchor information in their requests, and my experimentation here
seems to verify this. I don't think it's possible to read the anchor
from the URL on the server (though you can set it there).

here's my code of controller:
class FooController < ApplicationController
  def o"i'm in o")[:controller])[:action])[:anchor])
    redirect_to (:action=>"a",:anchor=>"blabla")
  def a"i'm in a")[:controller])[:action])[:anchor])
    respond_to do |format|
      format.html {render :text=> "hi"}

and i send a request in browser like:"localhost.3000/foo/o#kkk"

and i get a hi response with a url:flocalhost.3000/foo/a#blabla

I get the right value with params[:controller] and params[:action],but
nothing with params[:anchor]
Bill Kocik is right, the reason is the browser won't send anchor to
the server