/mobility-ransack

Search attributes translated by Mobility with Ransack

Primary LanguageRubyMIT LicenseMIT

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.1.0'

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.