Метод Exists с гемом friendly_id - PullRequest
       2

Метод Exists с гемом friendly_id

0 голосов
/ 30 октября 2019

Любые предложения о том, как действовать следующим образом:

У меня есть закрытый метод авторизации, который выглядит следующим образом

def offer_authorised
    redirect_to dashboard_path, 
        alert: "You don't have permission." unless Offer.exists?(['id = ? AND (landlord_id = ? OR user_id = ?)', params[:id], current_user.id, current_user.id])
end

, и я использую гем friendly_id следующим образом

class Offer < ApplicationRecord
  extend FriendlyId
  friendly_id :generated_slug, use: :slugged

  def generated_slug
   require 'securerandom' 
   @random_slug ||= persisted? ? friendly_id : SecureRandom.hex(15) 
 end
end

Так что он просто генерирует уникальный идентификатор для URL, но проблема здесь в том, что я сталкиваюсь с ошибкой, которая говорит

PG::InvalidTextRepresentation: ERROR: invalid input syntax for integer: "f72662293f2578fee4ebd59f62668b" LINE 1: SELECT 1 AS one FROM "offers" WHERE (id = 'f72662293f2578fee... ^

Так что я предположил, что это потому, что идентификатор не являетсяцелое число, а затем я попытался исправить это, вызвав метод to_s для params [: id] в существует? метод, но это не сработало.

Кто-то предложил изменить params [: id] на Offer.friendly.find (params [: id]), и это действительно работает, но это выглядит немного странно, поэтому, если у кого-то есть лучшее решение, я будурад это слышать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...