我正在使用此设置获得一个奇怪的命名助手:
在config / routes.rb中我有:
Qtl::Application.routes.draw do
resources :qtl_table do
collection do
get 'search'
end
end
...
end
rake routes输出:
search_qtl_table_index GET /qtl_table/search(.:format) {:action=>"search", :controller=>"qtl_table"}
qtl_table_index GET /qtl_table(.:format) {:action=>"index", :controller=>"qtl_table"}
POST /qtl_table(.:format) {:action=>"create", :controller=>"qtl_table"}
new_qtl_table GET /qtl_table/new(.:format) {:action=>"new", :controller=>"qtl_table"}
edit_qtl_table GET /qtl_table/:id/edit(.:format) {:action=>"edit", :controller=>"qtl_table"}
qtl_table GET /qtl_table/:id(.:format) {:action=>"show", :controller=>"qtl_table"}
PUT /qtl_table/:id(.:format) {:action=>"update", :controller=>"qtl_table"}
DELETE /qtl_table/:id(.:format) {:action=>"destroy", :controller=>"qtl_table"}
我确实关闭了复数:
ActiveRecord::Base.pluralize_table_names = false
但是我收到了这个错误:
undefined local variable or method `search_qtl_table_index' for #<#<Class:0x8056a3fa8>:0x8056a2338>
这与我将很快删除的这个问题有关: Rails: routing and path helpers
答案 0 :(得分:3)
这与复数无关。您在引用它时需要使用search_qtl_table_index_path
,而不仅仅是search_qtl_table_index
(您需要将_path
添加到结尾)。
因此,您的form_tag
声明应为:
<%= form_tag search_qtl_table_index_path, :method => 'get' do %>