0

我创建了一个没有问题的脚手架

$ rails 生成脚手架新名称:字符串标题:字符串内容:文本

运行迁移的 Rake 命令(与以前一样没有问题,表已正确创建)

$ 耙分贝:迁移

编辑 app/views/home/index.html.erb

<%= link_to '我的新闻', :controller => '新闻' %>

我在“http://localhost:3000”中正确看到了主页和链接;单击链接“我的新闻”页面“http://localhost:3000/news”加载没有错误。

现在,点击 Rails 生成的链接“New New”,链接的目标 localhost:3000/news/new (source "<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 做

资源:新闻

获取“主页/索引”

  • 导轨 3.2.3
  • 红宝石 1.9.3p125
  • MySQL 5.5
  • 视窗 7 64 位

耙子路线:

news_index GET /news(.:format) 新闻#index

POST /news(.:format) 新闻#create

new_news GET /news/new(.:format) 新闻#new

edit_news GET /news/:id/edit(.:format) 新闻#edit

新闻 GET /news/:id(.:format) 新闻#show

PUT /news/:id(.:format) news#update

删除 /news/:id(.:format) 新闻#destroy

home_index GET /home/index(.:format) home#index

根/主页#index

提前感谢,对不起我的英语

4

1 回答 1

1

你必须使用news_index_path,因为如果rails不能使单数成为单数,则新闻不是单数-它们将_index在末尾添加:)

你有一个news和很多news,这很令人困惑。

总是尝试使用<name_of_resource>_path来生成 url :)

news_index GET /news(.:format) news#index

这表示它是隐含的,您使用 1 部分news_index并添加_path以获取它的路径。

你应该有

<%= link_to 'My News', news_index_path %>

希望有帮助,加油!

于 2012-04-26T15:08:57.037 回答