有关如何进行以下操作的任何建议:
我有一个专用的授权方法,看起来像这样
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 gem
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
因此它只是为该网址生成一个唯一的ID,但是这里的问题是我遇到一个错误提示
PG::InvalidTextRepresentation: ERROR: invalid input syntax for integer: "f72662293f2578fee4ebd59f62668b" LINE 1: SELECT 1 AS one FROM "offers" WHERE (id = 'f72662293f2578fee... ^
所以我认为这是因为id不是整数,然后, 我试图通过在存在的params [:id]上调用to_s方法来解决此问题?方法,但这没有用。
有人建议将params [:id]更改为Offer.friendly.find(params [:id]),的确可以,但是似乎有点可疑,所以如果有人有更好的解决方案,我将很高兴听到它。