Rails向现有脚手架添加新页面

时间:2014-11-03 09:04:41

标签: ruby-on-rails

我使用了scaffold并创建了一个控制器模型并查看了部分,然后我想添加一个新页面,例如:搜索到它,所以我在

中创建了search.html.erb
`views/myview/search.html.erb` 

并在routes.rb中添加了这样的

 resources :myview ,:collection => {:search => :get}

并且在控制器中我添加了一个动作def搜索结束..但是当我转到localhost:3000 / myapp / myview / develop时出现错误

Missing template myview/show, application/show with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in: * "/path/app/views" * "/home/***/.rvm/gems/ruby-2.1.2/gems/devise-3.4.0/app/views"

我不想要一个节目页面如何解决这个问题?我想展示我的search.html.erb页面

1 个答案:

答案 0 :(得分:1)

这就是你应该如何申报你的路线:

resources :myview do
  collection do
    get :search
  end
end

当您键入localhost:3000/myapp/myview/develop时,Rails会将其识别为/myview/:id,这是预期的行为。如果您要添加其他develop操作,请先在routes.rb内声明。