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
81-100 / 449 show all
90commodi et quisHighCancelledDivine FirmwareSkyNetDirk Michaels and Koobus VenterEdit
91quaeratHighAssignedDivine FirmwareSkyNetKoobus Venter and Grey BradnamEdit
92est praesentiumAnecdoticClosedSuper GameMNUChristopher JohnsonEdit
93autCancelledSuper GameMNUPiet SmitEdit
94officiisNewUltimate WebsiteMNUDirk Michaels, Ross Pienaar, and Wikus van de MerweEdit
96impedit explicabo voluptatemUrgentVerifiedUltimate WebsiteMNURoss PienaarEdit
97voluptatem facilis etStartedDivine FirmwareSkyNetEdit
99solutaHighAssignedDivine FirmwareSkyNetEdit
100autem nonNormalResolvedSuper GameMNUChristopher Johnson and Piet SmitEdit
101enim ullamUrgentNewDivine FirmwareSkyNetGrey BradnamEdit
102inventore eligendi voluptasAnecdoticNewDivine FirmwareSkyNetSarah LivingstoneEdit
103molestiaeAnecdoticCancelledDivine FirmwareSkyNetKoobus Venter and Dirk MichaelsEdit
104autemLowResolvedSuper GameMNUPiet Smit and Wikus van de MerweEdit
106laboriosam enimAnecdoticStartedDivine FirmwareSkyNetKoobus VenterEdit
107utLowDuplicateDivine FirmwareSkyNetGrey Bradnam and Koobus VenterEdit
108maximeHighResolvedDivine FirmwareSkyNetGrey Bradnam and Dirk MichaelsEdit
109sit amet fugiatNormalStartedDivine FirmwareSkyNetEdit
110hicHighStartedDivine FirmwareSkyNetGrey Bradnam and Koobus VenterEdit
112neque quiUrgentPostponedDivine FirmwareSkyNetKoobus VenterEdit
113exercitationemClosedDivine FirmwareSkyNetGrey BradnamEdit

Fork me on GitHub