2010-11-27 58 views
0

當用戶登錄到一個網站,它有特定的頁面(例如,對於他的東西儀表盤),究竟應該如何映射?地圖儀表板的URL

有網站有example.com/user/,和其他人只有example.com/,其他examples.com/user/id

什麼是做到這一點的最好方法是什麼?如果你沒有在URL中傳遞:id,你怎麼知道這個用戶是誰?

回答

1

在您使用的儀表盤的地址中 - 這其實並不重要。重要的是你選擇了一些在你的網站環境中一致和合乎邏輯的東西。例如,如果您的網站更多是一個應用程序 - la basecamp - 並且儀表板是用戶開始與應用程序進行交互的主頁面,那麼您可能需要遵循example.com/的某些內容,或者example.com/home甚至example.com/dashboard

如果,另一方面,你正在建設的東西沿着一個電子商務網站的線,並通過儀表盤頁面更你的意思是鏈接到一個屏幕訂單歷史,配置文件的詳細信息等,你可能需要更多的東西像xxx.com/myaccount

就像我說的,重要的是,它是有意義的在您的網站的其他部分

在知道哪些用戶是哪個,不管羯羊的ID是在URL中的細節取決於你如何在你的應用程序處理身份驗證的條款。如果你還沒有設置任何東西,我強烈建議看看Devise。它將完成您需要的所有功能,以便在rails 3中快速輕鬆地進行身份驗證。它也適用於CanCan,這對確定哪些人可以在您的應用中執行哪些操作很有幫助

+0

感謝。我現在有/ users /:id但我想將它映射到/ myaccount。我如何做到這一點,並改變我擁有的所有其他鏈接?/users /:id/services /:id等到/ myaccount/services /? – donald 2010-11-27 15:10:18

0

我認爲如果你不使用資源路由你的應用程序,那麼你可以使用你最喜歡的東西,REST風格的方式是.com/users/:id/dashboard

1

這取決於儀表板是是否單身資源。我可能會創建爲單資源如

的config/routes.rb中

match '/dashboard' => 'users#dashboard', :as => 'dashboard' 

耙路線

dashboard  /dashboard(.:format)    {:action=>"dashboard", :controller=>"users"} 

在控制器,我有一個#current_user功能根據會話信息返回當前登錄的用戶。這樣,儀表板返回的CURRENT_USER只有信息,但在我的例子中,用戶不能訪問其他用戶,這通常是這種情況的儀表盤(儘管一些管理功能,呼籲這樣的能力。)

+0

是否需要向控制器添加任何內容?只有那條路線似乎不起作用。你能舉一個完整的例子嗎?這正是我想要的。謝謝 – donald 2010-11-27 23:43:04