Mobility Ransack

Gem Version Build Status Code Climate

Search on translated attributes with Mobility and Ransack.

Installation

Just add the gem to your Gemfile:

gem 'mobility-ransack', '~> 1.2.1'

Now enable the ransack plugin in Mobility's configuration:

Mobility.configure do
  plugins do
    ransack

    # ...
  end
end

This will enable the ransack plugin for all models. Disable it by passing false to the ransack option:

class Post < ApplicationRecord
  extend Mobility
  translates :foo, ransack: false
end

You can search on foo with Ransack just like any untranslated attribute, e.g. if Post has a title attribute translated with the Jsonb backend:

Post.ransack(title_cont: "foo").result
#=> SELECT "posts".* FROM "posts" WHERE ("posts"."title" ->> 'en') ILIKE '%foo%'

Other backends work exactly the same way.

License

The gem is available as open source under the terms of the MIT License.