在我的 Rails 应用程序中使用 jQuery 数据表时出错

using jquery datatables in my rails app getting error

本文关键字:jQuery 数据表 出错 我的 Rails 应用程序      更新时间:2023-09-26

我看了这个轨道。

使用它作为模板,我在我的 rails 应用程序中使用数据表、引导程序will_paginate。

我的模型称为"演示"这是代码:

应用.js

 ...............
 //= require jquery
 //= require jquery_ujs
 //= require twitter/bootstrap
 //= require turbolinks
 //= require dataTables/jquery.dataTables
 //= require_tree .

演示.js.咖啡

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

我在项目中添加了一个名为"ModelDatatables"的类,以便允许任何模型在其视图中使用该数据表。 类模型数据表 delegate :p arams, :link_to, :to => :@view attr_accessor :model_name, :型号

   def initialize(view, model_name)
     puts "nitializing Model Datatables with modelname = #{model_name}"
 @view = view
 @model_name = model_name
   end
   def as_json(options = {})
   {
      sEcho: params[:sEcho].to_i,       #variable needed by Datatables server
      iTotalRecords: @model_name.count, #variable needed by Datatables server
      iTotalDisplayRecords: models.total_entries,
      aaData: data
    }
    end
     private #====================================================================
    def data
     models.map do |m|
       [
        link_to(m.name, m)
       ]
      end
    end
  def models
     @models ||= fetch_models
   end
   def fetch_models
      mod_instance = @model_name.order("#{sort_column} #{sort_direction}")
     mod_instance = mod_instance.page(page).per_page(per_page)
     if params[:sSearch].present?
       mod_instance = mod_instance.where("name like :search or category like :search",            
         search: "%#{params[:sSearch]}%")
     end
     mod_instance
   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
att_array = @model_name.attribute_names.to_a
    columns = att_array
    columns[params[:iSortCol_0].to_i]
  end
 def sort_direction
    params[:sSortDir_0] == "desc" ? "desc" : "asc"
 end
end

在我的控制器中,我试图像这样使用数据表类Demo_controller.rb

 def index
respond_to do |format|
     format.html
     format.json { render json: ModelsDatatable.new(view_context, Demo ) }
    end
 end

视图:

demos/index.html.erb

 <%- model_class = Demo -%>
 <div class="page-header">
   <h1><%=t '.title', :default => model_class.model_name.human.pluralize.titleize %></h1>
 </div>
 <table class="table table-striped display" id="demos" data-source="<%= demos_url(format: "json") %>" >
   <thead>
     <tr>
       .......
       </thead>
     <tbody>
          .......
     </tbody>
     </table>

当我在浏览器上运行它时。我收到此错误:

 SyntaxError: unexpected {
   (in /Users/Xxxxxx/Desktop/xxxxxxxxx/app/assets/javascripts/demos.js.coffee)
  Extracted source (around line #37):
                 <%= javascript_include_tag "application" %>
  app/views/layouts/application.html.erb:37:in   
     `_app_views_layouts_application_html_erb__2549661732362878565_70299008379240'
      app/controllers/demos_controller.rb:8:in `index'

不知道下一步该怎么做。有人可以帮忙吗?

谢谢

好吧,

看起来你有一个

语法错误:意外的 {

请务必在demo.js.coffee中检查空格,我刚刚编辑了您的问题,假设您复制粘贴,则混合了空格和制表符。