我创建了一个没有问题的脚手架
$ rails generate scaffold新名称:字符串title:string content:text
Rake命令运行迁移(没有像以前那样出现问题,表格正确创建)
$ rake db:migrate
修改app / views / home / index.html.erb
<%= link_to'我的新闻',:controller => 'news'%>
我在“http:// localhost:3000”中正确看到了主页和链接;单击链接“我的新闻”页面“http:// localhost:3000 / news”加载时没有错误。
现在,点击Rails生成的链接“New New”,链接的目标localhost:3000 / news / new(来源“< a href =”/ news / new“> New New< / a>”) ,我读了这个错误:
路由错误
没有路线匹配{:action =>“show”,:controller =>“news”,:format => nil}
尝试运行rake路线以获取有关可用路线的更多信息。
在“app / views / news / index.html.erb”中,链接源为
<%= link_to'New New',new_news_path%>
在routes.rb中我读了
MyApp :: Application.routes.draw做
资源:新闻
获取“home / index”
耙道:
news_index GET /news(.:format)新闻#index
POST /news(。:format)新闻#create
new_news GET /news/new(.:format)news#new
edit_news GET /news/:id/edit(.:format)news#edit
news GET /news/:id(.:format)news#show
PUT /news/:id(.:format)news#update
DELETE /news/:id(.:format)news#destroy
home_index GET /home/index(.:format)home #index
root / home #index
提前致谢并抱歉我的英文
答案 0 :(得分:1)
你必须使用news_index_path
,因为如果rails无法做出单数的新闻不是单数 - prular区分他们会在末尾添加_index
:)
您有一个news
和多个news
,这很令人困惑。
始终尝试使用<name_of_resource>_path
生成网址:)
news_index GET /news(.:format) news#index
这表示隐含,您使用1部分news_index
并添加_path
来获取路径。
你应该
<%= link_to 'My News', news_index_path %>
希望有所帮助,欢呼!