2008-10-23 48 views
0

在我正在开发的一个项目中,Apache设置为仅转发以/ prefix/*形式出现在杂种中的请求。我如何告诉ruby在rails上生成所有带有这个前缀的URL?我可以在Ruby on Rails中使用url_for前缀选项吗?

我必须这样做向前设置到正确的控制器行动路线:

map.connect 'sfc/:controller/:action' 

,但似乎并没有影响到该URL作家生成URL的方式。

任何想法?

回答

1

Mongrel接受一个--prefix选项,然后将其前置到所有生成的URL。这是我知道能够在一台服务器上运行同一应用程序的多个实例的唯一途径。

+0

Rails 2.3+更改打破了杂项中的--prefix选项,并且尚未更新。您将不得不自己修补代码以使其正常工作。 – 2009-05-15 18:41:59

2

RAILS_RELATIVE_URL_ROOT环境变量应该做的伎俩,虽然我没有尝试过自己。

1

怎么样使用:选择串流中:

map.connect ':controller/:action', :path_prefix => 'sfc' 
2

你可能有另一条路线(在routes.rb中底部的默认路由大概一个)URL生成是使用优先于sfc-前缀匹配。举例来说,如果你有

map.connect "sfc/:controller/:action" 
map.connect ":controller/:action/:id" 

然后url_for(:controller => 'x', :action => 'y', :id => 3)将返回"/x/y/3"。如果将其更改为

map.connect "sfc/:controller/:action" 
map.connect "sfc/:controller/:action/:id" 

您应该得到"/sfc/x/y/3"

相关问题