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
21-40 / 449 Voir tous
24voluptate culpaNormalResolvedSuper GameMNUPiet SmitEdit
25ab quiHighVerifiedSuper GameMNUWikus van de Merwe and Piet SmitEdit
26quia mollitia delenitiUrgentAssignedSuper GameMNUEdit
27eum velHighResolvedUltimate WebsiteMNUGrey Bradnam and Ross PienaarEdit
28laborum enim voluptasClosedDivine FirmwareSkyNetFundiswa MhlangaEdit
29etResolvedUltimate WebsiteMNURoss Pienaar, Dirk Michaels, and ObesandjoEdit
30corrupti molestiae abHighDuplicateSuper GameMNUPiet SmitEdit
32voluptatem ipsam liberoHighClosedUltimate WebsiteMNUGrey BradnamEdit
33voluptatemUrgentResolvedUltimate WebsiteMNUObesandjo and Grey BradnamEdit
34illo voluptasHighClosedSuper GameMNUEdit
36placeatUrgentNewUltimate WebsiteMNUFundiswa Mhlanga and Wikus van de MerweEdit
37etNormalStartedUltimate WebsiteMNUEdit
38minima doloribus sedLowPostponedSuper GameMNUEdit
39praesentium et idUrgentVerifiedSuper GameMNUPiet SmitEdit
40dolorAnecdoticClosedSuper GameMNUPiet SmitEdit
41estUrgentStartedDivine FirmwareSkyNetFundiswa MhlangaEdit
42autHighCancelledUltimate WebsiteMNUDirk Michaels and Dirk MichaelsEdit
44id temporibus eligendiAssignedUltimate WebsiteMNUEdit
45rerumNormalPostponedDivine FirmwareSkyNetEdit
47temporibus iure delectusLowCancelledUltimate WebsiteMNUWikus van de Merwe and ObesandjoEdit

Fork me on GitHub