首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails数据关联get_raw_records

rails数据关联get_raw_records
EN

Stack Overflow用户
提问于 2015-12-02 01:05:57
回答 2查看 1.8K关注 0票数 0

我一遍又一遍地阅读关于这个主题的文档,但是我无法理解/使它工作,我正在使用antillas21 21/ajax- datatables rails宝石作为我的数据数据,但我不能使工作成为包含关联的表的排序/搜索功能。

在这里,有关它的文档链接:

https://github.com/antillas21/ajax-datatables-rails/issues/77 https://github.com/antillas21/ajax-datatables-rails#associated-and-nested-models

我尝试了几种方法,这就是给我“更好”结果的方法(至少显示了数据)。

首先是模特。

订单

代码语言:javascript
复制
        :id => :integer,
 :school_id => :integer,
      :year => :integer,
 :paymethod => :string,
  :contract => :string,
:created_at => :datetime,
:updated_at => :datetime,
    :number => :integer,
:licitacion => :string

学校

代码语言:javascript
复制
        :id => :integer,
    :nombre => :string,
       :rut => :string,
 :direccion => :string,
     :email => :string,
:commune_id => :integer

公社

代码语言:javascript
复制
       :id => :integer,
     :name => :string,
:region_id => :integer

地域

代码语言:javascript
复制
        :id => :integer,
      :name => :string,

OrderStatus

代码语言:javascript
复制
            :id => :integer,
      :order_id => :integer,
:status_type_id => :integer,
    :comentario => :string,
    :created_at => :datetime,
    :updated_at => :datetime

StatusType

代码语言:javascript
复制
         :id => :integer,
     :nombre => :string,
:descripcion => :string,
 :created_at => :datetime,
 :updated_at => :datetime

orders_datatable

代码语言:javascript
复制
 def sortable_columns
    # Declare strings in this format: ModelName.column_name
    @sortable_columns ||= %w(Order.id School.nombre Commune.name Region.name Order.year Order.paymethod Order.contract StatusType.nombre)
  end

  def searchable_columns
    # Declare strings in this format: ModelName.column_name
    @searchable_columns ||= %w(Order.id School.nombre Commune.name Region.name Order.year Order.paymethod Order.contract StatusType.nombre)
  end

  private

  def data
    records.map do |record|
      [
        # comma separated list of the values for each cell of a table row
        # example: record.attribute,
        link_to(record.try(:number), order_proccesses_path(record)), 
        link_to(record.school.try(:nombre), order_proccesses_path(record)), 
        link_to(record.school.commune.try(:name), order_proccesses_path(record)), 
        link_to(record.school.commune.try(:region).try(:name), order_proccesses_path(record)), 
        link_to(record.try(:year), order_proccesses_path(record)), 
        link_to(record.try(:paymethod), order_proccesses_path(record)), 
        link_to(record.try(:contract), order_proccesses_path(record)), 
        link_to(record.order_statuses.last.status_type.try(:nombre), order_proccesses_path(record)), 
        edit_and_delete_buttons(record)
        ]
    end
  end

  def get_raw_records
    # insert query here
    Order.joins(:school).all
  end

orders.coffee

代码语言:javascript
复制
$ ->
  $('#orders-table').dataTable
    processing: true
    serverSide: true
    ajax: $('#orders-table').data('source')
    paginType: 'full_numbers'
    responsive: true
    language:
      url: "/assets/Spanish.json" 
    columns: [
        { sortable: true,  searchable: true }
        { sortable: true,  searchable: true }
        { sortable: true,  searchable: true }
        { sortable: true,  searchable: true }
        { sortable: true,  searchable: true }
        { sortable: true,  searchable: true }
        { sortable: true,  searchable: true }
        { sortable: true,  searchable: true }
        { sortable: false, searchable: false }
      ]

耽误您时间,实在对不起

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-03 01:51:17

antillas21的答复:)

代码语言:javascript
复制
# if using .includes
def get_raw_records
  Order.includes(
    :school => { :commune => :region }, :order_statuses => :status_type
  )
  .references(
    :school => { :commune => :region }, :order_statuses => :status_type
  ).distinct
end

# alternatively, you can use .joins
def get_raw_records
  Order.joins(
    :school => { :commune => :region }, :order_statuses => :status_type
  ).distinct
end

希望这对其他人有用

票数 1
EN

Stack Overflow用户

发布于 2016-09-28 11:39:49

也许这对你来说会很有趣- http://ajahongir.github.io/ajax-datatables-rails/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34033182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档