我的应用程序中有这个结构:
USER has_one:publicprofile,:privateprofile
PUBLICPROFILE有很多:电子邮件,:phonenumbers
PRIVATEPROFILE有很多:地址,:信用卡
我想知道如何为用户提供一个配置文件页面,我可以在其中更新其嵌套资源(并以RESTful方式执行)。我找不到关于这个主题的任何文档/示例(因为混淆了has_one关系)。
答案 0 :(得分:4)
我认为任何比1级更深的嵌套通常都是不受欢迎的,通常可以避免。贾米斯巴克blogged about it一会儿回来。
PeepCode REST for Rails 2 screencast也非常好,但它并没有广泛用于嵌套,只是一般的资源。
答案 1 :(得分:4)
在routes.rb文件中,您可以使用块将您的配置文件添加为用户的嵌套资源:
map.resources :users do |user|
user.resources :privateprofile
user.resources :publicprofile
end
然后,您可以使用以下网址访问您的个人资料:
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/
答案 2 :(得分:2)
我建议您观看此截屏视频:http://railscasts.com/episodes/139-nested-resources
它确实帮助我理解了在Rails中使用嵌套路由和资源的真正可能性(特别是Rails 2.2中的新变化)。
但是,我必须在这里同意Ryan Bates,小心使用嵌套资源。