我使用了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页面
答案 0 :(得分:1)
这就是你应该如何申报你的路线:
resources :myview do
collection do
get :search
end
end
当您键入localhost:3000/myapp/myview/develop
时,Rails会将其识别为/myview/:id
,这是预期的行为。如果您要添加其他develop
操作,请先在routes.rb
内声明。