Ruby on Rails资源设计,单数与复数

时间:2012-03-24 15:10:11

标签: ruby-on-rails rest resources profile

我还在学习Rails以及如何最好地设计我的资源结构。有人可以帮我吗?这是我的问题:

我正在设计一个带有个人资料的专业社交网络 - 每个帐户都有一个个人资料。目前,帐户会在首次注册时存储有关用户的基本信息(用户名,密码等)。个人资料存储其他人认为像图片链接,人格问题的答案(通过外键链接回个人资料),以及将来可能更多。帐户和个人资料之间存在一对一的关系。用户可以查看/编辑自己的个人资料并查看属于他人的个人资料。

我的问题:

  1. 将这两个资源完全分开(即有两个不同的模型)或将它们合并为一个带有两个控制器的模型是一个好主意吗?我尝试了后者,它似乎比它的价值更麻烦。在这种情况下,我是否反对该框架?我不确定用户以后是否应该能够拥有多个帐户。

  2. 如果我拆分它们,我应该为配置文件使用单数还是复数资源?我在guide.rubyonrails.org的语言中注意到,获取(显示)和放置(更新)使用ONE和ONLY配置文件资源。关于我目前的情况,我的问题是:“唯一的”关于什么?当前用户帐户或整个网站的“唯一”配置文件?如果是这样,我怎么能拥有其他用户的当前用户视图配置文件 - 我应该使用这样的URL参数:

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

    如果我选择复数路线,那么显示“所有配置文件”的索引是否意味着对于当前用户或网站上的每个人都意味着什么?或者这取决于我自己的解释?

    我很感激我能得到的任何帮助,因为我觉得我开始在概念上理解REST和RoR,但我只是想把它付诸实践。谢谢!

1 个答案:

答案 0 :(得分:1)

我个人会将帐户和个人资料保留为两个独立的资源,或者至少2个独立的控制器访问同一模型的不同部分。 这样,您可以通过http://www.example.com/profiles/2轻松查看其他用户,http://www.example.com/accounts/2轻松管理自己的帐户,而无需添加自定义路由。

如果您可以向帐户添加更多个人资料,那么这也是未来校对的一种形式。