当使用菜单允许从控制器“Drills”中选择“评估”方法时,我收到错误消息 No route matches {: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 rake 路线我得到
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 将我带到适当的页面。我一定是错的。如何设置 link_to 以便将我带到 Drills 控制器中的评估操作?
提前感谢皮埃尔