Rails 数据模型关系实现:嵌套资源与多对多关系
在开发 Rails 应用时,处理数据模型之间的关系是一项重要任务。本文将详细介绍如何实现嵌套资源以及多对多关系,包括路由、控制器和视图的修改。
嵌套资源:奖项与学生的关系
在 Rails 应用中,我们希望奖项模型更清晰地反映其与学生的关系。主要的更改集中在路由和控制器逻辑上。
1. 更改路由
在 config/routes.rb 文件中,原有的路由配置如下:
map.resources :awards
map.resources :students
我们需要删除这些行,并替换为:
map.resources :students, :has_many => [ :awards ]
这样的更改表示学生和奖项之间的 has_many 关系。更改后, http://localhost:3000/students/ 仍然可用,但 http://localhost:3000/awards/ 将返回错误。奖项的 URL 也变得更复杂,例如 http://localhost:3000/students/3/awards/2 表示 ID 为 2 的奖项属于 ID 为 3 的学生。
2. 更改控制器
超级会员免费看
订阅专栏 解锁全文
7

被折叠的 条评论
为什么被折叠?



