0

この質問はこれに関連しています

私のフォーム:

</br>
<%= 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 %>

私のルート:

  resource :rater, :only => [] do
    collection do
      get :rater_csv
      get :view_all
    end
  end

私のコントローラー:

class RaterController < ApplicationController
  def index
  end

  def view_all
    if params[:search]
      @ratings = RatingSet.find(:all, :conditions => ['id = ? or rating_date like ?', "#{params[:search]}", "%#{params[:search]}%"])
    else
      @ratings = RatingSet.all
    end
  end
end

単一のリソースを使用した私のルート:

  rater_csv_rater GET    /rater/rater_csv(.:format)    raters#rater_csv
   view_all_rater GET    /rater/view_all(.:format)     raters#view_all

複数のリソースを使用した私のルート:

  rater_csv_rater GET    /rater/rater_csv(.:format)    rater#rater_csv
   view_all_rater GET    /rater/view_all(.:format)     rater#view_all

なぜ単一のリソースを定義するのか、本当に混乱していraters#view_allます。

単数のリソースを定義するuninitialized constant RatersController 場合: 複数のリソースを定義する場合: undefined local variable or methodview_all_rater_path'`

4

4 に答える 4

0

ルートに追加します。

resources : raters
于 2013-02-27T07:27:12.187 に答える
0

ルートをに変更します

resources :rater, :only => [] do
  collection do
    get :rater_csv
    get :view_all
  end
end
于 2013-02-27T07:34:53.707 に答える
0

評価者でルートを使用しないので、名前空間を使用しないのはなぜですか

namespace :raters do
  get 'rater_csv'
  get 'view_all'
end

Raters代わりに、コントローラーの名前をまたはに変更しますRater

于 2013-02-27T08:19:53.760 に答える
0

単一のリソースでは、複数形のコントローラーが必要なためRatersController、エラーが示すようになります。

複数形のリソースでは、次のようになりますview_all_raters_path

于 2013-02-27T08:13:34.130 に答える