Rails技术需求:在Index视图添加跳转至对应Project视图的链接
嘿,我来帮你搞定这个在Rails Index视图里添加Project详情页链接的问题!
首先看你现在的代码,index.html.erb里的链接写法有点小问题:
<%= link_to project.name, project_path(:id) %>
这里的:id只是个符号,不是当前循环里项目的实际ID,点击后会跳转到/project/:id这种无效路径,而不是具体的项目页面(比如/projects/1)。
正确的链接写法
你有两种简洁且符合Rails约定的写法可选:
- 直接传入
project对象(最推荐)
Rails的路由辅助方法会自动从对象里提取id,生成正确的详情页URL:
<td class="ellipsis"> <%= link_to project.name, project %> </td>
- 显式指定项目ID
如果你更习惯明确传参,也可以这样写:
<td class="ellipsis"> <%= link_to project.name, project_path(project.id) %> </td>
额外的路由优化建议
看你的routes.rb,你同时写了自定义路由和resources :projects。其实resources :projects已经自动生成了标准的RESTful路由(包括GET /projects/:id对应projects#show),所以你之前的自定义路由get '/project/:id', to: 'projects#show'是多余的,甚至可能引发路由冲突。建议保留resources :projects,删掉重复的自定义路由,这样路由结构更规范。
内容的提问来源于stack exchange,提问作者Mystic Chimp
相关产品推荐
相关产品推荐

