2016-08-22 11 views
0

私はJDを選択するためのJob description(JD)ページを作成しようとしています。 私のメインページには、いくつかのジョブを選択するためのフィールドと、選択フィールドの下のテーブルに選択されたジョブの詳細を表示するボタン/リンクがあります(Job descriptions Viewerのように、select2 with RoRを使用)。 (ActionController ActionController :: UnknownFormatRuby on Rails select2 AJAX/JQuery - コントローラにパラメータを渡しても動作しない

私の問題は、私は、コントローラに、選択したジョブIDを渡すことができないということである、と私はこのメッセージを得る:20msの中

完了406受け入れられない(0.0msのActiveRecordを) :: UnknownFormat): アプリ/コントローラ/ job_descriptions_controller.rb:81: `でupdateJobs'

私のコントローラメソッド:

def updateJobs 
    @selected = JobDescription.where(id: params[:selectJdField2]) 
    respond_to do |format| 
    format.js 
    format.html 
    end 
end 

メインビュー(jdComparison.html.erb)は、2つのパーシャルをレンダリングします

<h1>Listing Job Descriptions</h1> 
<%= render 'sidebar' %> 
    <div class="clearfix"></div> 
<div> 
    <%= render partial: 'item_list', locals: { job_desc: @job_descriptions} %> 
</div> 

_sidebar.html.erb部分がselet2フィールドと呼ばれるJDSをリフレッシュするためのリンクを持っている「検索リンク」:

<div class="col-sm-8"> 
list of JDs: 
    <%= select_tag "selectJdField", options_from_collection_for_select(@job_descriptions, :id, :job_title), { :multiple => true } %> 
</div> 
<%= link_to "Find Link", updateJobs_path(@job_descriptions), :remote => true %> 
<script> 
    $(document).ready(function() { $("#selectJdField").select2(); }); 
</script> 

SELECT2フィールドで選択されているすべてのJDSを表示します_item_list.html.erb部分:私は "検索リンク" ボタンをクリックすると

<div> 
<table> 
    <thead> 
    <tr> 
    <th>Job title</th> 
    <th>Department</th> 
    </tr> 
    </thead> 
    <tbody> 
    <% job_desc.each do |job_description| %> 
    <tr> 
     <td><%= job_description.job_title %></td> 
     <td><%= job_description.department %></td> 
    </tr> 
    <% end %> 
    </tbody> 
</table> 
</div> 

updateJobs.js.erb、(私は私の最初の問題はここにあると思います)JDSリストを更新する必要があり

$("#div_id").html("<%= escape_javascript(render partial: 'item_list', locals: { job_desc: @selected}) %>") 

JSファイル(私は)私の第二の問題はここにあると思う:

$ -> 
updateLists =() -> 
    $.ajax 
    url:'updateJobs' 
    type: 'post' 
    dataType: 'html' 
    format: 'js' 
    data: { 
    selectJdField2 : $('#selectJdField').val() 
    } 

路線:

get 'updateJobs'  => 'job_descriptions#updateJobs' 
post 'updateJobs'  => 'job_descriptions#updateJobs' 

私はこれでコントローラメソッド交換した場合:

def updateJobs 
    @selected = JobDescription.where(id: 1) 
end 

それは、検索リンクをクリックした後、私のJD番号1の詳細を提供します。私は、「ID」を追加

<button id="btnFind">Find</button> 

:私は、通常のボタンで「リンクを探す」再発した :親切に、私は

+0

JSファイル –

+0

の' dataType: 'script''で試してみました。同じことをしました。 – Yousef

+0

try - 'method:" post "'代わりに 'type:' post''上記のtryと一緒に) –

答えて

0

私はそれが動作するために何をやったか、この..あなたの助けが必要_item_list.htmlの最初のdiv。JSファイルでは、部分的

<div id = "div_id"> 

をERB:

$ -> 
    $(document).on 'change', '#selectJdField', (evt) -> 
     updateLists() 
    $(document).on 'click', "#btnFind", (evt) -> 
    updateLists() 
    updateLists =() -> 
    $.ajax '/updateJobs', 
    type: 'GET' 
    dataType: 'script' 
    data: { 
    selectJdField2 : $('#selectJdField').val() 
    } 

と私は必要はありませんでした(ポスト 'をupdateJobs')routesファイルに...今、すべてが正常に動作...ありがとう「ヴェンカトCh "

関連する問題