【问题标题】:deeply nested RESTful resources in RailsRails 中深度嵌套的 RESTful 资源
【发布时间】:2008-12-18 22:46:42
【问题描述】:

我的应用中有这个结构:

USER has_one :publicprofile, :privateprofile

PUBLICPROFILE 有很多 :emails, :phonenumbers

PRIVATEPROFILE 有很多 :adresses, :creditcards

我想知道如何为用户创建一个个人资料页面,我可以在其中更新他的嵌套资源(并以 RESTful 方式进行)。我找不到有关该主题的任何文档/示例(因为令人困惑的 has_one 关系)。

【问题讨论】:

  • 您到底想知道什么?路线怎么走?
  • 如何为这种情况创建一个简单的 crud/scaffold 以及如何编写路线。另外,如果您有一个个人资料页面,您如何将各个部分组合在一起?您是否将每个模型的视图呈现为 sn-ps?或者您是否为每个资源创建其他表单?我认为一个示例可以清楚地说明问题

标签: ruby-on-rails rest


【解决方案1】:

我相信任何比 1-level 更深的嵌套通常是不受欢迎的,通常可以避免。 Jamis Buck blogged about it 不久前。

PeepCode REST for Rails 2 screencast 也很好,但它并没有深入到嵌套,只是一般的资源。

【讨论】:

    【解决方案2】:

    在您的 routes.rb 文件中,您可以使用块将您的配置文件添加为用户的嵌套资源:

    map.resources :users do |user|
      user.resources :privateprofile
      user.resources :publicprofile
    end
    

    然后您可以使用类似这样的 URL 访问您的个人资料:

    users/1/publicprofiles
    users/1/publicprofiles/new
    users/1/publicprofiles/1/edit
    

    您可以在终端中运行 rake 路由,以获取更新路由文件后可用的所有嵌套 url 的列表。

    有关真正深入的解释,请参阅此帖子:http://adam.blog.heroku.com/past/2007/12/20/nested_resources_in_rails_2/

    【讨论】:

      【解决方案3】:

      我建议您观看此截屏视频:http://railscasts.com/episodes/139-nested-resources

      它确实帮助我理解了在 Rails 中使用嵌套路由和资源的真正可能性(尤其是 Rails 2.2 中的新变化)。

      但是,我必须同意 Ryan Bates 的观点,谨慎使用嵌套资源。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多