视图中的其他html.erb文件无法在rails上的ruby中工作

时间:2014-11-17 11:33:06

标签: ruby-on-rails controller views

我有一个我在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

1 个答案:

答案 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)。