我有一个我在ruby on rails上创建的数据库,它自动创建了一些所需的文件但是当我在views文件夹中手动添加了一个额外的文件并尝试在我的浏览器中访问它时。 出现此错误
Routing Error
No route matches [GET] "/second/count"
Try running rake routes for more information on available routes.
我试图通过在routes.rb
中加上一个数字符号来纠正这个问题
Community::Application.routes.draw do
#resources :seconds
match ':controller(/:action(/:id))', :via => :get
我刚创建的文件有效但后来自动创建的文件却没有。 出现此错误
NameError in Seconds#index
Showing c:/Sites/Community/app/views/seconds/index.html.erb where line #25 raised:
undefined local variable or method `new_second_path' for #<#<Class:0x456ee80>:0x37b9a98>
Extracted source (around line #25):
22:
23: <br />
24:
25: <%= link_to 'New Second', new_second_path %>
Rails.root: c:/Sites/Community
Application Trace | Framework Trace | Full Trace
app/views/seconds/index.html.erb:25:in `_app_views_seconds_index_html_erb__742794588_29296056'
app/controllers/seconds_controller.rb:7:in `index'
Request
Parameters:
None
Show session dump
Show env dump
Response
Headers:
None
答案 0 :(得分:0)
要使帮助程序new_second_path
起作用,您必须取消注释路径中的行resources :seconds
。
除非你知道自己在做什么,否则我会评论match ...
行,这是一个全能的。
另外:路径/second/count
不起作用,应为/seconds/count
。解释一下:
/second/count
:使用match
,它会查找SecondController
(单数!!)和行动count
但要处理的干净方法是写:
resources :seconds do
collection do
get :count
end
end
这将允许您在视图中编写count_seconds_path
,这将呈现正确的链接(/seconds/count
)。