我是 ruby on Rails 的新手,我想使用多个参数从 javascript 调用 Controller 方法。我尝试过,但没有得到输出。 _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
结束
如何检查 Controller 方法是否被调用
最佳答案
在routes.rb上,请进行以下更改,
resources :jobs do
post :update_work_flow, on: :collection
在 Js 中,您指定了“post”方法,而在路由中,您指定了“get”方法。尝试更改为 post ,代码应该可以工作。
关于javascript - 如何从rails中的javascript调用 Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40014040/