Использование cancan available_by без отношения activerecord - PullRequest
0 голосов
/ 09 октября 2018

Мое приложение использует необработанный запрос SQL, а не объект activerecord.Я не могу использовать представление, поскольку столбцы запроса являются переменными, в зависимости от конфигурации пользователя.(управляемый таблицей)

Я выполняю запрос с помощью оператора ActiveRecord :: Base.connection.execute

ActiveRecord::Base.connection.execute <<-SQL
  SELECT
    #{[items_fields, generate_item_number, role_type_fields.presence, 
      milestone_state_columns.presence, codes_fields].compact.join(', ')}
  FROM items ...

, который не возвращает отношение ActiveRecord.Тем не менее, я должен отфильтровать результат на основе правил настройки в канкан.

Я пытался переписать этот запрос с использованием синтаксиса ActiveQuery, чтобы вернуть отношение AR, но оно очень медленное.

В идеале я хотел бы либо

  1. Вернуть результаты этого запроса в виде отношения activerecord к цепочке для available_by
  2. Использовать cancan для возврата условия, которое я могзатем используйте в моем необработанном предложении WHERE предложение.
...