简体   繁体   English

如何从Rails中的javascript调用控制器方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM