0

メニューを使用してコントローラー「Drills」からメソッド「evaluate」を選択できるようにすると、「ルートが一致しません {:action=>"evaluate", :controller="drills"」というエラー メッセージが表示されます

コントローラー

class DrillsController < ApplicationController
before_filter :load_drill, except: [:index, :new, :create]

authorize_resource

rescue_from GeoPosition::Error::InvalidDegreesError,
          GeoPosition::Error::InvalidMinutesError,
          GeoPosition::Error::InvalidSecondsError do |e|
  flash[:message] = e.message
  redirect_to :back
 # can only be placed here
 end

def evaluate
  evaluation_assumption = Evaluation.generate_projection(assumption_params)
  if evaluation_assumption.valid?
    result_list = Evaluation.generate_projection(@drill.drill_interests,
                                               evaluation_assumption)
    respond_to do |format|
      format.json { render json: results_list}
    end
  else
    respond_to do |format|
      format.json { render json: []}
    end
  end
end
.. controller continues

CONTROLLER=drills レーキ ルートを使用すると、

drill_evaluate POST   /drills/:drill_id/evaluate(.:format) drills#evaluate
       drills GET    /drills(.:format)                    drills#index
             POST   /drills(.:format)                    drills#create
   new_drill GET    /drills/new(.:format)                drills#new
  edit_drill GET    /drills/:id/edit(.:format)           drills#edit
       drill GET    /drills/:id(.:format)                drills#show
             PUT    /drills/:id(.:format)                drills#update
             DELETE /drills/:id(.:format)                drills#destroy

Drill - Evaluate にアクセスしようとするメニュー ビューは、次のように drill_evalate_path です。

....
<ul class="t-nav">
      <li class="tab <%=(tab_id == 'Drill Information') ? 'active' : '' %>">
          <%= link_to "Drill Information", drill_stakes_path %></li>
      <li class="tab <%=(tab_id == 'Investor Room') ? 'active' : '' %>">
          <%= link_to "Expanded Investor Room", 
          drill_evaluate_path %></li>
    </ul> 
....

メニュービュー内で、さまざまなオプションを試しました。

<li class="tab <%=(tab_id == 'Investor Room') ? 'active' : '' %>">
          <%= link_to "Expanded Investor Room", 
          drills_path, action: => :evaluate %></li>

「作成」アクションを実行しようとします。

Rake Routes 出力の一番左の列を link_to で使用して、適切なページに移動できると考えました。私は間違っているに違いない。Drills コントローラーの評価アクションに移動するように link_to を設定するにはどうすればよいですか?

前もって感謝します ピエール

4

1 に答える 1

2

これはメンバールートです。つまり、id期待どおりのドリルを提供する必要があります。

すなわち:

drill_evaluate_path(id)
#or
drill_evaluate_path(drill_object)

ここに明確に書かれています(drill_idparamを参照):

drill_evaluate POST   /drills/:drill_id/evaluate(.:format) drills#evaluate
于 2013-08-21T08:11:01.380 に答える