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: c=request.path_parameters['controller'] ac=request.path_parameters['action'] an=request.path_parameters['anchor'] 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

params[:controller] params[:action] params[:anchor]

-- Posted viahttp://www.ruby-forum.com/.

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 posting.

Cheers, Zach Inglis → Blog -- http://www.zachinglis.com → Company -- http://www.lt3media.com → Portfolio -- http://portfolio.zachinglis.com

Ooops, wrong copy and paste.

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

Are you sure anchor is set?

Cheers, Zach Inglis → Blog -- http://www.zachinglis.com → Company -- http://www.lt3media.com → Portfolio -- http://portfolio.zachinglis.com

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: localhost.com/foo#bar 2) I also use redirect_to :controller=>"foo" :action=>"index" :anchor=>"bar" And I use logger.info(params[:anchor]) to monitor the result,and what I get is always a blank row.By the same time,I have logger.info(params[: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     logger.info("i'm in o")     logger.info(params[:controller])     logger.info(params[:action])     logger.info(params[:anchor])     logger.info(params.to_json)     redirect_to (:action=>"a",:anchor=>"blabla")   end   def a     logger.info("i'm in a")     logger.info(params[:controller])     logger.info(params[:action])     logger.info(params[:anchor])     logger.info(params.to_json)     respond_to do |format|       format.html {render :text=> "hi"}       end   end end

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] i'think Bill Kocik is right, the reason is the browser won't send anchor to the server