2012-03-24 53 views
1

我還在學習Rails以及如何最好地設計我的資源結構。有人可以幫助我嗎?這是我的問題:Ruby on Rails資源設計,單數還是複數

我正在設計一個專門的社交網絡與配置文件 - 每個帳戶有一個配置文件。目前,帳戶首次註冊時會存儲有關用戶的基本信息(用戶名,密碼等)。一個配置文件存儲其他認爲像一個圖片鏈接,回答個性問題(通過外鍵鏈接到一個配置文件),也許更多在未來。帳戶和配置文件之間有一對一的關係。用戶可以查看/編輯自己的配置文件並查看屬於他人的配置文件。

我的問題:

  1. 難道這兩個完全分割成單獨的資源是一個好主意(即有兩個不同的型號)或摺疊他們到一個模型,兩個控制器?我已經嘗試過後者,而且它幾乎看起來比它更值得的麻煩。在這種情況下,我是否與框架戰鬥?我還不確定用戶是否應該能夠在將來擁有多個帳戶。

  2. 如果我將它們分開,我應該爲配置文件使用單數還是複數資源?我在guide.rubyonrails.org用語言注意到,它使用ONE和ONLY配置文件資源獲取(顯示)並放置(更新)工作。關於我目前的情況,我的問題是:「獨一無二」的是什麼?當前用戶帳戶或整個網站的「唯一」配置文件?如果是這樣,我怎麼可能有其他用戶的用戶視圖配置文件 - 我應該用一個URL參數,像這樣:

http://www.example.com/profile?id=x,其中x是其他用戶的帳戶ID

如果我去了多個路線,是否顯示「所有配置文件」的索引意味着所有的當前用戶或整個網站的每個人?或者這取決於我自己的解釋?

我希望能得到任何幫助,因爲我覺得我開始從概念上理解REST和RoR,但我只是試圖將其付諸實踐。謝謝!

回答

1

我會親自將帳戶和個人資料保存爲兩個單獨的資源或至少2個獨立的控制器訪問同一模型的不同部分。 這允許輕鬆路線,如http://www.example.com/profiles/2查看其他用戶和http://www.example.com/accounts/2管理自己的帳戶,而不必添加自定義路線。

如果您有可能爲帳戶添加更多配置文件,那麼這也是未來打樣的一種形式。

+0

嗨,BookOfGreg,非常感謝您的回覆 - 這是非常有益的 - 我會分裂他們。考慮到您的示例URI,您是否會建議我在這種情況下使用複數路由(即資源:配置文件而不是資源:配置文件)以便用戶能夠查看彼此的配置文件?或者它會更有意義(是否更容易)使用URL參數與單數路線? – spanport 2012-03-24 15:43:19

+0

我不是最有經驗的Ruby開發人員,但公約似乎你會擁有資源:routes.rb中的配置文件,它將通過profiles_path爲您提供http://www.example.com/profiles路由。 – BookOfGreg 2012-03-24 16:06:24

+0

這個解決方案會很好 - 謝謝你的澄清! – spanport 2012-03-25 02:02:15