[英]how to call controller method from javascript in rails
I am new in ruby on rails, I want to call controller method from javascript with multiple parameters. 我是Rails中的ruby的新手,我想从具有多个参数的javascript调用控制器方法。 I tried but didn't got output.
我尝试过但没有输出。 _applied_candidate.html.erb
_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 routes.rb
resources :jobs do
get :update_work_flow, on: :collection
end 结束
jobs_controller.rb jobs_controller.rb
def update_work_flow
redirect_to root_path
end 结束
How to check controller method called or not 如何检查控制器方法是否调用
On routes.rb, Please make the following change, 在routes.rb上,请进行以下更改,
resources :jobs do
post :update_work_flow, on: :collection
In Js, you have specified as 'post' method, while in routes, you have specified a 'get' method. 在Js中,您已指定为“ post”方法,而在路线中,您已指定了“ get”方法。 Try changing to post and the code should work.
尝试更改为发布,代码应该可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.