Sha256: 883c1a641d802e65df2b2ed851b3ad15a98b1b5eb706fed5e7add3ee1ea6dcd3

Contents?: true

Size: 1.51 KB

Versions: 12

Compression:

Stored size: 1.51 KB

Contents

.well
  %h2= current_page_title
  %p
    There are two approaches to custom filters with joined tables. The first thing that comes to mind is to define
    a column of a joined table with
    %code :attribute
    and
    %code :assoc
    , and submit a list of all possible values of this column to
    %code :custom_filter
    , like it is done in the example below in the Priority column:
  %p
    %code g.column name:  'Priority', attribute: 'name', assoc: :priority, custom_filter: %w(Anecdotic High Low Normal Urgent) do |task|

  %p
    This works but such a filter produces a query with a
    %code WHERE
    clause comparing a varchar field with one of the string values submitted to
    %code :custom_filter
    \.
    This is not guaranteed to be as efficient as comparing an indexed integer foreign key with an integer primary key, thus, this approach is highly advised against.
  %p
    To implement filtering by foreign keys, define the column with the foreign key in
    %code :attribute
    and submit a hash or a two element array containing the IDs and labels of the joined table to
    %code :attribute
    \.
    This has a negative side effect on sorting - the column will now be sorted according to the numerical value of the foreign key.
    It can be dealt with by overiding sorting by
    %code :custom_order
    in
    %code initialize_grid
    \:
  %p
    %code custom_order: {'tasks.status_id' => 'statuses.position', 'tasks.project_id' => 'projects.name'}

= show_code

.row-fluid
  .col-md-12
    = render   'grid'

Version data entries

12 entries across 12 versions & 2 rubygems

Version Path
wice_grid-6.1.3 spec/support/test_app/app/views/custom_filters2/index.html.haml
wice_grid-6.1.2 spec/support/test_app/app/views/custom_filters2/index.html.haml
wice_grid-6.1.1 spec/support/test_app/app/views/custom_filters2/index.html.haml
wice_grid-6.1.0 spec/support/test_app/app/views/custom_filters2/index.html.haml
pwice_grid-7.0.0 spec/support/test_app/app/views/custom_filters2/index.html.haml
pwice_grid-6.1.2 spec/support/test_app/app/views/custom_filters2/index.html.haml
pwice_grid-6.1.1 spec/support/test_app/app/views/custom_filters2/index.html.haml
pwice_grid-6.1.0 spec/support/test_app/app/views/custom_filters2/index.html.haml
pwice_grid-5.0.2 spec/support/test_app/app/views/custom_filters2/index.html.haml
pwice_grid-5.0.1 spec/support/test_app/app/views/custom_filters2/index.html.haml
pwice_grid-5.0.0 spec/support/test_app/app/views/custom_filters2/index.html.haml
wice_grid-4.1.0 spec/support/test_app/app/views/custom_filters2/index.html.haml