未找到Rails控制器路径

时间:2013-02-27 02:07:14

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

我的视图中的表单标记:

<%= 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"}

3 个答案:

答案 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所有人:确保您根据需要拨打正确的请求,GETPOST