簡體   English   中英

我可以在Ruby on Rails中讓url_for使用前綴選項嗎?

[英]Can I have url_for use a prefix option in Ruby on Rails?

在我正在進行的項目中,Apache設置為僅將以/ prefix / *形式出現的請求轉發到mongrel。 如何告訴ruby on rails生成帶有該前綴的所有URL?

通過執行以下操作,我為轉發到正確的控制器操作設置了路由:

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

但這似乎並不影響url編寫器生成URL的方式。

有任何想法嗎?

RAILS_RELATIVE_URL_ROOT環境變量應該可以解決問題,盡管我自己還沒有嘗試過。

您可能還有另一條路由(可能是route.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"

如何使用:path_prefix選項:

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

Mongrel接受--prefix選項,然后該選項將添加到所有生成的URL之前。 我知道這是能夠在一台服務器上運行同一應用程序的多個實例的唯一方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM