Область Rails неверное количество аргументов (задано 2, ожидается 1) для Filterrific

#ruby-on-rails #activerecord #filterrific

#ruby-on-rails #activerecord #filterrific

Вопрос:

Я использую Filterrific gem, чтобы попытаться отсортировать события по месяцам и годам, однако я получаю следующую ошибку:

 ArgumentError at /events
wrong number of arguments (given 2, expected 1)
  

Соответствующий код:

 # models/event.rb

class Event < ApplicationRecord
  belongs_to :venue
  belongs_to :performer

  filterrific(
    default_filter_params: { sorted_by: 'created_at_desc' },
    available_filters: [
      :sorted_by,
      :search_query,
      :with_venue_id,
      :with_performer_id,
      :with_year_and_month
    ]
  )

  scope :with_year_and_month, lambda { |reference|
    where(date: reference..reference.next_month)
  }

  def self.options_for_select
    order('LOWER(name)').map { |e| [e.date.strftime("%Y-%m-%d"), e.date.strftime("%Y-%m-1")] }
  end
end


# controllers/events_controller.rb

class EventsController < ApplicationController
  def index
    @filterrific = initialize_filterrific(
      Event,
      params[:filterrific],
      select_options: {
        sorted_by: Event.options_for_sorted_by,
        with_venue_id: Venue.options_for_select,
        with_performer_id: Performer.options_for_select,
        with_year_and_month: Event.options_for_select
      }
    ) or return
    @events = @filterrific.find.page(params[:page])

    respond_to do |format|
      format.html
      format.js
    end
  end
end
  

Я в замешательстве, потому что работает один и тот же формат в моей модели места проведения, и оба они, похоже, передают одинаковое количество аргументов:

 # models/venue.rb

class Venue < ApplicationRecord
  has_many :events

  def self.options_for_select
    order('LOWER(name)').map { |e| [e.name, e.id] }
  end
end
  

Комментарии:

1. Вы должны опубликовать полную трассировку стека ошибок.

2. @dinesh Извините, я несколько новичок в этом, можете ли вы объяснить, где я это найду?