Fix URL redirecting

I tried posting this once but had problems with Google G…

Hi,
I watched the rails screencast on creating a blog in 15 minutes.
I followed along got it working on my home PC and I then uploaded it
to my web host. So I have,

/home//blog

I had to change some config in the blog app (i.e. production mode,
db settings).

I then created a directory…

cd ~/public_html/bor

And a symlink to point to my blog app…

ln -s ~/blog/public ~/public_html/bor

I deleted the blog/public/index.html and I modified blog/config/
routes.rb to contain the following line:

map.connect ‘’, :controller => ‘blog’, :action =>‘index’

I did that so when someone goes to mysite.com/bor/ they would get
directed to what is the index action in my blog_controller.

Ok, so things are working and I can see my blog posts when I go to,
mysite.com/bor/ Now if I click on post I get redirected to
mysite.com/bor/blog/show/1 …and from that page if I click “back”
I end up at mysite.com/bor/blog/list …basically all the links look
like mysite.com/bor/blog/ instead of what I hoped to
see, mysite.com/bor/.

Any ideas?

If it helps, my blog_controller.rb has the following method for the
“index” …

def index
list
render :action => ‘list’
end
Thanks!

craig w wrote:

I tried posting this once but had problems with Google G…

Hi,
I watched the rails screencast on creating a blog in 15 minutes.
I followed along got it working on my home PC and I then uploaded it
to my web host. So I have,

/home//blog

I had to change some config in the blog app (i.e. production mode,
db settings).

I then created a directory…

cd ~/public_html/bor

And a symlink to point to my blog app…

ln -s ~/blog/public ~/public_html/bor

I deleted the blog/public/index.html and I modified blog/config/
routes.rb to contain the following line:

map.connect ‘’, :controller => ‘blog’, :action =>‘index’

I did that so when someone goes to mysite.com/bor/ they would get
directed to what is the index action in my blog_controller.

Ok, so things are working and I can see my blog posts when I go to,
mysite.com/bor/ Now if I click on post I get redirected to
mysite.com/bor/blog/show/1 …and from that page if I click “back”
I end up at mysite.com/bor/blog/list …basically all the links look
like mysite.com/bor/blog/ instead of what I hoped to
see, mysite.com/bor/.

Any ideas?

If it helps, my blog_controller.rb has the following method for the
“index” …

def index
list
render :action => ‘list’
end
Thanks!

uh huh…

simplest solution rename blog controller to bor controller and move it
up a directory

then read agile development in rails by the pragmatic programmers group.

uh huh…

simplest solution rename blog controller to bor controller and move it
up a directory

…I am reading the agile book now (is there a certain section you
recommend for more information?).

Anyways, what do you mean by “move it up a directory”? Move the
bor_controller somewhere? The controller is kept in app/controllers,
sorry just not understanding what you mean.

Thanks for the help though.

craig w wrote:

…basically all the links look
like mysite.com/bor/blog/ instead of what I hoped to
see, mysite.com/bor/.

Any ideas?

That because it’s all going through the ‘blog’ controller. If you have
other controllers, your url would look like:

/bor/comments/show/1
/bor/products/new

You can setup a custom route that looks like:

map.blog ‘:action/:id’,
:controller => ‘blog’

Now you can do:

url_for(:controller => ‘blog’, :action => ‘show’, :id => 123)

Or even better:

blog_url(:action => ‘show’, :id => 123)

and get the url:

/bor/show/123

Just keep in mind that if you do add more controllers in the future
rails routing will have a hard time figuring out what goes to the blog
controller and what goes to the other controllers. This is why its best
to keep controller names in the url.

…bump…

That because it’s all going through the ‘blog’ controller. If you have
other controllers, your url would look like:

/bor/comments/show/1
/bor/products/new

so can I get rid of “bor” altogether and somehow make my blog
application accessible, even though it is stored at,

/home//blog

?

I’d prefer not to even have the “bor” and symlink…but I didn’t know
how else to expose blog/public to the web.

Thanks.