Closed panmari closed 6 years ago
I ran into the same issue. 👍
Thanks for the workaround.
Thanks for posting this. I just ran into the exact same issue.
@panmari thanks, same issue and now solved.
@panmari oh this make search column on associated model not working correctly, 2 records of associated model with different content always retrieves and displayed. If I am not override this way, it can search column and filter nested content correctly.
One thing to note about @panmari's workaround is that it doesn't affect the recordsFiltered
count returned by the API, since the default records_filtered_count
implementation is still calling the original filter_records
method (rather than the custom one). While you could also override records_filtered_count
in a similar fashion, here's a slightly different approach to this workaround that forces the replacement filter_records
method to be re-defined after the ORM's version:
class ExampleDatatable < AjaxDatatablesRails::Base
private
def load_orm_extension
super
extend CustomOverrides
end
module CustomOverrides
def filter_records(records)
records = super(records)
records.where(:other => "stuff")
end
end
end
An other way to fix this would be to make the gem a Rails engine. This way we could hook on Rails to extend the AjaxDatatablesRails::Base
class in early loading stage and not on runtime.
But you loose the ability of having datatables plugged on Mongoid models.
But Mongoid models are not really supported. There is no implementation for this adapter. So what do we do? What do you suggest? What do you prefer?
But Mongoid models are not really supported. There is no implementation for this adapter. So what do we do? What do you suggest? What do you prefer?
See https://github.com/jbox-web/ajax-datatables-rails/issues/288#issuecomment-394536281 and https://github.com/jbox-web/ajax-datatables-rails/tree/feat/ar_class
Hi there! It's now fixed : https://github.com/jbox-web/ajax-datatables-rails/commit/719d6231e1612b995bd93cb773f4841d8e9fc7c0
Currently, when overriding for example
filter_records
in a custom datatable, it's ignored due to 'load_orm_extension' being called on initialize, which overrides the custom method by the one provided in the orm.According to the rails generator datatable template, such use should be possible:
As a workaround I'm currently overriding
retrieve_records
in my custom datatable