我是ruby on rails的新手,我想从带有多个参数的javascript调用控制器方法。我试过但没有输出。 的 _applied_candidate.html.erb
<p>Next Status: <span class="fontstyle3">
<select name="workflow_id" id="workflow_id" onchange="updateItem('workflow_id', <%= applied_candidate.id %>, <%= job.id %>)">
<% data.each do | d | %>
<option value="">Please select</option>
<% d.next_step.split(',').each do | s | %>
<% data1 = CandidateWorkFlow.select(:workflow_step).where("step_id = ?",s) %>
<% data1.each do |l| %>
<option value=<%= s%>> <%= l.workflow_step %> </option>
<% end %>
<% end %>
<% end %>
</select>
</span>
</p>
<script type="text/javascript">
function updateItem(item, userID, jobID) {
var e = document.getElementById(item);
var val = e.options[e.selectedIndex].value;
new Ajax.Request('/jobs/update_work_flow', {
method: 'post',
parameters: { selected_id: item, u_id: userID, job_id: jobID }
});
};</script>
的routes.rb
resources :jobs do
get :update_work_flow, on: :collection
端
jobs_controller.rb
def update_work_flow
redirect_to root_path
端
如何检查被调用的控制器方法
答案 0 :(得分:2)
在routes.rb上,请进行以下更改
resources :jobs do
post :update_work_flow, on: :collection
在Js中,您指定为“post”方法,而在路径中,您指定了“get”方法。尝试更改为发布,代码应该有效。