Sha256: 6ae51cef8eafa8760eb66a8f1c4c47837c0d866b5b4995dfc4c0d0e5f8993ef9

Contents?: true

Size: 484 Bytes

Versions: 1

Compression:

Stored size: 484 Bytes

Contents

class Artist < ApplicationRecord
  scope :by_name, lambda { |name|
    where('lower(name) like ?', "%#{name.downcase}%")
  }
  def self.search_genre(genre)
    where('lower(genre) like ?', "%#{genre.downcase}%")
  end

  extend Rack::Reducer
  reduces all, filters: [
    # filters can call class methods...
    ->(genre:) { search_genre(genre) },
    # or scopes...
    ->(name:) { by_name(name) },
    # or inline ActiveRecord queries
    ->(order:) { order(order.to_sym) }
  ]
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rack-reducer-0.1.0 spec/rails_example/app/models/artist.rb