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'
    
ID TitlePriorityStatusProject NameCustomerAssigned To
41-60 / 449 show all
48qui inciduntLowCancelledDivine FirmwareSkyNetSarah LivingstoneEdit
49laborumHighNewUltimate WebsiteMNUObesandjoEdit
50ipsum nam temporeUrgentDuplicateSuper GameMNUPiet SmitEdit
51harum qui possimusAnecdoticCancelledDivine FirmwareSkyNetDirk Michaels and Koobus VenterEdit
52eos temporibus omnisLowResolvedSuper GameMNUEdit
53molestiaeAssignedSuper GameMNUChristopher Johnson and Piet SmitEdit
54minima in voluptatemNormalPostponedUltimate WebsiteMNUDirk Michaels and Dirk MichaelsEdit
55dolorLowCancelledSuper GameMNUEdit
56sitLowVerifiedSuper GameMNUPiet SmitEdit
57nequeNormalPostponedDivine FirmwareSkyNetFundiswa Mhlanga, Koobus Venter, and Dirk MichaelsEdit
58atque etAnecdoticStartedDivine FirmwareSkyNetEdit
59alias liberoUrgentStartedUltimate WebsiteMNUEdit
60voluptas repellendusStartedUltimate WebsiteMNUDirk Michaels and ObesandjoEdit
61quia architectoNormalAssignedDivine FirmwareSkyNetGrey BradnamEdit
62eum velit saepeNormalAssignedDivine FirmwareSkyNetKoobus VenterEdit
63accusamusNewSuper GameMNUChristopher JohnsonEdit
64reiciendisNormalNewSuper GameMNUPiet Smit and Christopher JohnsonEdit
66vitae at autemNormalPostponedSuper GameMNUPiet Smit and Wikus van de MerweEdit
67officia quo maioresAnecdoticCancelledSuper GameMNUEdit
68exercitationem delectusNormalPostponedDivine FirmwareSkyNetSarah Livingstone, Koobus Venter, and Fundiswa MhlangaEdit

Fork me on GitHub