2011-07-14 95 views
2

我是新來的Rails和已運行到與一個小應用程序,我寫的路線路障 -Rails 3路由 - 如何使用根路由中的參數?

我想用根路線將參數映射到特定的控制器 -

例如,假設我有一個控制器,VariablePageController,它將根據URL中的參數呈現不同的內容。

所以當有人訪問我的網站時,mysite.com會進入主頁,但mysite.com/[pagename]會通過我的VariablePageController,但用戶將留在mysite.com/[pagename]和NOT mysite.com/VariablePage/[pagename] -

變量[頁面名]是動態生成的,所以我不能列出在routes.rb中所有的可能性...

將如何實現與路由這種效果?

回答

3

好吧,我找到了答案,有興趣的人士......

我基本上是想,但我想沒有很好地描述,是「塞式」或基於URL根目錄的「友好」網址,而不是/控制器/路由。

要做到這一點 - 做這樣的事情在routes.rb中: 標準首頁路線

根:到=> 「頁面#指數」

參數爲基礎的家庭路線

比賽':url'=>「page#show」

1

你可以這樣做

match '/pagename' => "variablepage#pagename", :as => "pagename" 

簡單命名的路由,然後你的鏈接會照顧,在你的variablepage控制器如下

​​

<%= link_to "pagename", pagename_path %> 

你有

def pagename 
..... 
end 

我希望這可以幫助你

+0

這不完全是我的意思 - pagename可以是任何東西,它是動態的,它可以是X,123,狗,貓等 - 用戶生成一個頁面與他們的選擇名稱。我希望根路由接受mysite.com/[variablepage],它是X,123,dog,cat等,並根據此從數據庫中提取內容。我只是沒有真正在如何匹配這個控制器,所以我可以從params []中拉出值。對於我來說,定義這樣的路線是不可能的,因爲它們是動態頁面 - 這有助於澄清嗎? – Evan