Ruby on Rails脚手架CRUD应用导航栏新增链接报错:undefined local variable or method
解决Rails中
undefined local variable or method 'phone_lists_new_path'的问题 嘿,这个问题我刚学Rails的时候也踩过同款坑!问题核心是你搞错了Rails RESTful路由的命名规则~
错误原因
Rails的RESTful路由对「新增页面」的命名逻辑是**new_资源单数名_path**,而不是你写的资源复数名_new_path。你能用phone_lists_path(列表页的复数路径)是符合规则的,但新增页的路径命名逻辑刚好反过来哦。
修正后的代码
把导航栏里的错误路径改成new_phone_list_path就可以正常工作了:
<%= link_to "List", phone_lists_path, class:"nav-item"%> <%= link_to "Add contact", new_phone_list_path, class:"nav-item"%>
验证小技巧(可选)
如果以后再对路由命名拿不准,直接在终端运行这个命令,就能看到所有可用的RESTful路由明细:
rails routes
你会看到新增页面对应的路由条目大概长这样:
new_phone_list GET /phone_lists/new(.:format) phone_lists#new
这样就能直观确认正确的路径名啦~
内容的提问来源于stack exchange,提问作者smit
相关产品推荐
相关产品推荐

