我的视图中的表单标记:
<%= form_tag view_all_rater_path, :method => 'get' do %>
<p>
<%= text_field_tag :search, params[:search], :placeholder => 'Search by Set # or date' %></br>
<%= submit_tag "Search", :class => "btn btn-link", :name => nil %>
</p>
<% end %>
我的控制器操作:
def view_all
if params[:search]
@ratings = RatingSet.find(:all, :conditions => ['id = ? or rating_date like ?', "%#{params[:search]}%"])
else
@ratings = RatingSet.all
end
end
我的路线:
resources :rater, :only => [:index] do
collection do
get :rater_csv
get :view_all
end
end
当我导航到/ rater / view_all时,我得到No route matches {:action=>"view_all", :controller=>"rater"}
答案 0 :(得分:2)
这里的问题在你的路线定义中将是单数与复数。
您的路线为rake routes
提供以下输出:
rater_csv_rater_index GET /rater/rater_csv(.:format) rater#rater_csv
view_all_rater_index GET /rater/view_all(.:format) rater#view_all
rater_index GET /rater(.:format) rater#index
因为您已使用单数名称(resources
)定义了复数资源(rater
)。
如果你把它作为一个独特的资源(resource
),路线就会自行清理。
始终记得使用rake routes
!
答案 1 :(得分:1)
您是否在控制台上尝试“rake routes”来查看路线的结构?
答案 2 :(得分:0)
2所有人:确保您根据需要拨打正确的请求,GET
或POST
。