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
    
  • .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'
    
  • <%= 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 -%>
    
ID TitlePriorityStatusProject NameCustomerAssigned To
61-80 / 449 Sýna allt
69similique placeat ipsaAnecdoticDuplicateDivine FirmwareSkyNetKoobus Venter, Grey Bradnam, and Dirk MichaelsEdit
70autemNormalStartedUltimate WebsiteMNUDirk Michaels and Ross PienaarEdit
71atNormalResolvedSuper GameMNUPiet SmitEdit
72illum explicabo modiVerifiedSuper GameMNUWikus van de Merwe, Piet Smit, and Fundiswa MhlangaEdit
73iure architectoNormalPostponedUltimate WebsiteMNUWikus van de MerweEdit
74molestiaePostponedUltimate WebsiteMNUDirk Michaels, Dirk Michaels, and ObesandjoEdit
75velit non magniDuplicateDivine FirmwareSkyNetKoobus Venter and Dirk MichaelsEdit
76totamAnecdoticNewUltimate WebsiteMNUObesandjo and Fundiswa MhlangaEdit
77sed quibusdam isteLowNewDivine FirmwareSkyNetKoobus VenterEdit
78exercitationem sapienteUrgentClosedDivine FirmwareSkyNetEdit
79animiVerifiedSuper GameMNUPiet Smit and Christopher JohnsonEdit
80corrupti officiaUrgentAssignedSuper GameMNUFundiswa Mhlanga and Piet SmitEdit
81ad quo dolorHighStartedDivine FirmwareSkyNetEdit
82utLowCancelledDivine FirmwareSkyNetEdit
83enimDuplicateDivine FirmwareSkyNetEdit
84doloreHighResolvedUltimate WebsiteMNUSarah Livingstone and Dirk MichaelsEdit
86adipisciStartedSuper GameMNUPiet SmitEdit
87nostrumNormalClosedDivine FirmwareSkyNetEdit
88culpaUrgentPostponedDivine FirmwareSkyNetDirk MichaelsEdit
89provident consequatur remLowResolvedSuper GameMNUWikus van de Merwe and Piet SmitEdit

Fork me on GitHub