2011-11-03 45 views
0

我剛剛從使用php mvc框架轉移到rails,並且已經通過指南和吞噬railscasts。創建非寧靜的rails頁面

看來,一切都基於寧靜的資源,圍繞這些部分創建功能是直觀的。

基於非基於模型的不安全/非基於模型的部分稍微不太直觀,或者至少似乎沒有被文檔覆蓋。

我的網絡應用有3種類型的用戶。當用戶登錄時,我希望它們顯示一個儀表板頁面,其中包含一些基本的摘要信息,具體取決於它們是哪種類型的用戶。

什麼是最好的表示方式?我是否只是創建一個名爲Dashboard的新操作控制器來表示這種基於非模型的功能,然後創建我需要的方法或者是否有更好的策略?

乾杯

回答

1

是的,你可以創建一個新的儀表板控制器。

如果它可能只是顯示操作,您可以將新的儀表板方法添加到您的用戶控制器和路線match "https://stackoverflow.com/users/:id/dashboard" => "users#dashboard"

+0

使'match/users /:id/dashboard「=>」users#dashboard「,:as =>:dashboard',你會得到一個免費的dashboard_url url幫助器! –

1

如果你能夠平靜地思考你的應用,Rails會讓你的生活變得非常簡單。無論何時您需要構建新功能,請考慮用戶正在做什麼。專注於「名詞」。

  • 您是否正在顯示可能被過濾或排序的事物列表? :索引
  • 你是不是正在展示一件很多東西?還是隻有一個? :顯示
  • 用戶是否需要建立新事物?這並不總是意味着保存到數據庫。將其顯示在:新的並將結果發佈到:創建
  • 用戶是否正在修改某個東西? POD到:更新。在修改之前是否有對事物或頁面的看法?使用:編輯
  • 被刪除的東西? :刪除

如果它混淆了你,不要在的區別包裹起來:指數:顯示。將您的功能置於:索引開始,並且您將瞭解是否需要將其移至:顯示

還要了解普通RESTful資源和單一資源之間的區別 - 有時(比如在儀表板的情況下),使用resource :dashboard然後將功能置於:show操作可能更有意義。

熟悉http://guides.rubyonrails.org/routing.html,記住要考慮非模型的「事物」,即使它們不是模型。

您的情況:您有三種類型的用戶和儀表板。您可以將用戶及其角色表示爲模型,並將該信息存儲在會話(user_id)中。然後,當用戶訪問/dashboard時,他們根據用戶和角色對象查看他們的自定義視圖(呈現在dashboard#show中)。