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'
    
IDTitlePriorityStatus Project NameCustomerAssigned To
41-60 / 449 Alle rijen tonen
404at aliquam corruptiAnecdoticAssignedSuper GameMNUFundiswa Mhlanga and Wikus van de MerweEdit
408quibusdam voluptateUrgentAssignedSuper GameMNUFundiswa MhlangaEdit
433ut facereUrgentAssignedUltimate WebsiteMNUFundiswa Mhlanga and Grey BradnamEdit
434voluptas quisquamAssignedSuper GameMNUChristopher JohnsonEdit
436accusantiumHighAssignedSuper GameMNUPiet SmitEdit
458quisLowAssignedSuper GameMNUPiet Smit, Wikus van de Merwe, and Christopher JohnsonEdit
368magnamAssignedSuper GameMNUPiet SmitEdit
377quam qui quibusdamAssignedDivine FirmwareSkyNetDirk Michaels, Koobus Venter, and Fundiswa MhlangaEdit
386eveniet ipsam etUrgentAssignedUltimate WebsiteMNUSarah LivingstoneEdit
402atAssignedSuper GameMNUPiet Smit and Christopher JohnsonEdit
1impedit aperiam liberoCancelledDivine FirmwareSkyNetEdit
22etAnecdoticCancelledSuper GameMNUPiet SmitEdit
42autHighCancelledUltimate WebsiteMNUDirk Michaels and Dirk MichaelsEdit
47temporibus iure delectusLowCancelledUltimate WebsiteMNUObesandjo and Wikus van de MerweEdit
48qui inciduntLowCancelledDivine FirmwareSkyNetSarah LivingstoneEdit
51harum qui possimusAnecdoticCancelledDivine FirmwareSkyNetKoobus Venter and Dirk MichaelsEdit
21et rerum laborumCancelledSuper GameMNUEdit
55dolorLowCancelledSuper GameMNUEdit
67officia quo maioresAnecdoticCancelledSuper GameMNUEdit
10rerum occaecatiUrgentCancelledSuper GameMNUPiet SmitEdit

Fork me on GitHub