2010-07-16 75 views
0

我是Amit。我是Rails新手。請原諒我,如果問任何愚蠢的 問題。在ROR中的URL重寫

我已經讀過這篇文章。我也患有相同的 問題。

我的網站的網址是這樣的:的locahost:3000 /用戶/編輯/ 30

我不想顯示控制器:用戶操作:編輯。

我想重新寫(重寫)的URL或我想保持網址爲 http://127.0.0.0:3000/30/而已。(30是用戶ID)

我沒興趣,顯示控制器(用戶)和動作(編輯)

我總的意圖是隱藏(隱藏)和重寫(REWRING)的URL ,主要我想隱藏與控制器和行動 主要..

回答

0

對於大多數應用程序,我一直使用的標準:

/script.cgi?arg1=foo&arg2=bar 

現在很明顯/用戶/編輯/埃裏克對於涉及編輯「Eric」用戶的 的URL看起來好多了。但是如何在 多個項目下解決問題。例如,如果我想刪除一組用戶。我 可能有這樣的事情在舊的方式:

/user/delete.cgi?id=3&id=5&id=7 

或更可讀的格式,我們可以有:

/user/delete.cgi?username=eric&username=john&username=paul 

當然,這是假設用戶名是唯一的。 :)這樣看來,我 想是這樣的:

/user/delete/eric/john/paul 

這使得明顯發生了什麼是URL發生。但我如何 生成?如果一個行動接收到這個請求,這如何讓 解析,所以我有這樣的:

@delete_usernames ===>>> [ 'eric', 'john', 'paul' ] 

這樣,那麼我就可以加載這些用戶並刪除它們。我知道 ActionController提供了一些處理URL重寫的方法 但我不確定如何最好地使用它們。任何幫助或指針大大 讚賞。

2

想要以這種方式使用路由是一個奇怪的要求,因爲它會使您很難擴展此方案以支持應用程序中的其他操作。 Rails慣例的好處之一就是你通常不必擔心(往往是微不足道的)應用程序細節,或者必須對它們有強烈的意見。

但你真的想,你可以將它添加到您的config/routes.rb

ActionController::Routing::Routes.draw do |map| 
    map.connect "/:id", :controller => "users", :action => "edit" 
end 

請記住,這有限的方案將意味着你只能到編輯行動路線。我建議不是非常有用。

+1

我同意@bjg。我想如果你嘗試訪問http://127.0.0.0:3000/logout,它會重新路由到用戶/編輯/註銷假設登出爲身份證 – Addy 2010-07-16 14:14:48