当使用菜单允许从控制器“演练”中选择“计算”方法时,我得到错误消息:“没有路由匹配{:action=>”计算“,:controller=>”演练“
控制器
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_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>它试图执行“创建”操作。
我想我可以用link_to输出的Rake路由输出的最左边一列带我到适当的页面。我一定错了。我如何设置一个link_to,以便让我在操练控制器中进行评估操作?
预先谢谢皮埃尔
发布于 2013-08-21 08:11:01
这是一个成员路线,这意味着你必须给它你期望的演习的id。
Ie:
drill_evaluate_path(id)
#or
drill_evaluate_path(drill_object)它在这里写得很清楚(请参阅drill_id param):
drill_evaluate POST /drills/:drill_id/evaluate(.:format) drills#evaluatehttps://stackoverflow.com/questions/18352004
复制相似问题