2016-10-13 43 views
-1

Rubyの新機能です。複数のパラメータを持つjavascriptからコントローラメソッドを呼び出す必要があります。私は試しましたが、出力がありませんでした。 _applied_candidate.html.erbコントローラメソッドをjavascriptから呼び出す方法

<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 

は、エンドコントローラのメソッドが呼び出さ確認方法

またはroutes.rbを上にない

答えて

2

、一方で、

resources :jobs do 
    post :update_work_flow, on: :collection 

はJsのでは、あなたが「ポスト」メソッドとして指定されている、以下の変更を行ってくださいあなたは 'get'メソッドを指定しています。ポストに変更しようとすると、コードがうまくいくはずです。

+0

返信ありがとう、私はポストと取得交換したが、まだ動作していません。このタスクのために別のオプションがある場合は、私に提案してください。 –

関連する問題