WiceGrid 3.6.0.pre4 examples

Joined tables

Use :include in :initialize_grid to include associated tables. :include can be a single association name, an array of association names. If you need to join tables to joined tabes, use hashes, for example: include: [:priority, :status, {project: :customer}]

To define a column from a joined table, use :assoc to specify a the corresponding association. If you need to join a table to a joined table, list associations in an array on the correct order (look at the customer column).

You can drop a block if you don't need any special markup.

  • # encoding: utf-8
    class JoiningTablesController < ApplicationController
      def index
        @tasks_grid = initialize_grid(Task,
          # You can omit includes if they are all mentioned in :assoc in the view
          # includes: [:priority, :status, {project: :customer}],
          conditions: { archived: false },
          order: 'id'
        )
      end
    end
    
  • <%= grid(@tasks_grid, show_filters: :always) do |g|
    
      g.column name:  'ID', attribute: 'id', filter: false
    
      g.column name:  'Title', attribute: 'title'
    
      g.column name:  'Priority', attribute: 'name',  assoc: :priority
    
      g.column name:  'Status', attribute: 'name', assoc: :status
    
      g.column name:  'Project Name', attribute: 'name', assoc: :project
    
      g.column name:  'Customer', attribute: 'name', assoc: [:project, :customer]
    
    
      g.column name:  'Assigned To', attribute: 'name', assoc: :assigned_users do |task|
        task.assigned_users.collect{|user| user.name}.to_sentence
      end
    
      g.column   do |task|
        link_to('Edit', edit_task_path(task))
      end
    end -%>
    
  • .well
      %h2= current_page_title
      %p
        Use
        %code :include
        in
        %code :initialize_grid
        to include associated tables.
        %code :include
        can be a single association name, an array of association names.
        If you need to join tables to joined tabes, use hashes, for example:
        %code include: [:priority, :status, {project: :customer}]
    
      %p
        To define a column from a joined table, use
        %code :assoc
        to specify a the corresponding association.
        If you need to join a table to a joined table,
        list associations in an array on the correct order
        (look at the customer column).
      %p
        You can drop a block if you don't need any special markup.
    
    = show_code
    
    = render   'grid'
    
IDTitle PriorityStatusProject NameCustomerAssigned To
1-20 / 449 show all
25ab quiHighVerifiedSuper GameMNUPiet Smit and Wikus van de MerweEdit
63accusamusNewSuper GameMNUChristopher JohnsonEdit
436accusantiumHighAssignedSuper GameMNUPiet SmitEdit
426accusantium eligendiAnecdoticNewSuper GameMNUEdit
370accusantium error exercitationemNormalClosedDivine FirmwareSkyNetSarah LivingstoneEdit
168adHighClosedUltimate WebsiteMNUDirk Michaels and ObesandjoEdit
86adipisciStartedSuper GameMNUPiet SmitEdit
346adipisci at nesciuntHighStartedDivine FirmwareSkyNetFundiswa Mhlanga and Koobus VenterEdit
147adipisci ut asperioresNewSuper GameMNUEdit
81ad quo dolorHighStartedDivine FirmwareSkyNetEdit
59alias liberoUrgentStartedUltimate WebsiteMNUEdit
3aliquam repudiandaeAnecdoticAssignedDivine FirmwareSkyNetEdit
188aliquid adipisciAssignedUltimate WebsiteMNUObesandjoEdit
139aliquid oditLowDuplicateDivine FirmwareSkyNetEdit
79animiVerifiedSuper GameMNUChristopher Johnson and Piet SmitEdit
447animi accusantium utUrgentClosedDivine FirmwareSkyNetEdit
175aperiam omnisCancelledUltimate WebsiteMNUDirk Michaels and Sarah LivingstoneEdit
309architecto esse autLowVerifiedUltimate WebsiteMNUEdit
145asperioresLowAssignedSuper GameMNUChristopher JohnsonEdit
457asperiores qui nonAnecdoticNewDivine FirmwareSkyNetKoobus Venter, Dirk Michaels, and Grey BradnamEdit

Fork me on GitHub