Impossible de lire la propriété 'asSorting' undefined - DataTables

for ( j=0, jLen=oColumn.asSorting.length ; j<jLen ; j++ ) à la ligne 6706 de DataTables...

J'ai copié le railscast sur le sujet, à peu près mot pour mot. Donc oColumn est pas défini. Les interwebs me dire que j'ai besoin d'avoir <thead> et <th> valeurs...

vue:

<table id="companyBoxList" class="display" data-source="<%= comp_boxes_path(format: "json") %>"
  <thead>
    <tr>
      <th>uid</th>
      <th>length</th>
      <th>width</th>
      <th>height</th>
      <th>weight</th>
      <th>trips</th>
    </tr>
  </thead>
  <tbody>
  </tbody>
</table>

Voici une copie de la nouvelle classe. Encore une fois, assez bien copié le railscast

boxes_database.rb

class BoxesDatatable
  delegate :params, :h, :link_to, :number_to_currency, to: :@view

  def initialize(view)
    @view = view
  end

  def as_json(options = {})
    {
      sEcho: params[:sEcho].to_i,
      iTotalRecords: Box.count,
      iTotalDisplayRecords: boxes.count,
      aaData: data
    }
  end

private

  def data
    boxes.map do |box|
      [
        box.uid,
        box.length,
        box.width,
        box.height,
        box.weight,
        box.trips
      ]
    end
  end

  def boxes
    @boxes ||= fetch_boxes
  end

  def fetch_boxes
    boxes = Box.order("#{sort_column} #{sort_direction}")
    boxes = boxes.page(page).per(per_page)
    if params[:sSearch].present?
      boxes = boxes.where("uid like :search or trips like :search", search: "%#{params[:sSearch]}%")
    end
    boxes
  end

  def page
    params[:iDisplayStart].to_i/per_page + 1
  end

  def per_page
    params[:iDisplayLength].to_i > 0 ? params[:iDisplayLength].to_i : 10
  end

  def sort_column
    columns = %w[uid length width height weight trips]
    columns[params[:iSortCol_0].to_i]
  end

  def sort_direction
    params[:sSortDir_0] == "desc" ? "desc" : "asc"
  end
end

javascript (café):

jQuery ->
  $('#companyBoxList').dataTable
    sPaginationType: "full_numbers"
    bJQueryUI: true
    bProcessing: true
    bServerSide: true
    sAjaxSource: $('#companyBoxList').data('source')

J'ai été en mesure d'obtenir de ce processus, en ajoutant "aoColumns": [null, null, null, null, null, null]. Cette null les en-têtes, mais, ce qui est contraire au but. Cela indique un problème avec les en-têtes de lecture et non sur le json, comme les données des rendements très bien.

idées?

Je ne sais pas le train, mais les tables de données est ok, pouvez-vous expliquer le problème de court?
sans mettre aoColumns: [null, null, null, null, null, null] dans mon javascript, des erreurs, affirmant qu'il ne peut pas trouver le oColumn objet.
OK, je sais quelle est la raison. se référer à ma réponse, si vous avez d'autres problèmes de juste laisser un commentaire, nous allons aller de l'avant et BTW, je sais que le Rail est génial.
OMG, je suis bête. manquait le > sur le début de la <table> appel. wow.
Je ne pense pas que la raison en est que, mais peut-être qu'il est. J'ai posté quelques changé de code que l'espoir peut vous donner quelques idées. faites également attention au format json renvoyé à partir du serveur

OriginalL'auteur Dudo | 2013-03-15