簡體   English   中英

Friendly_id PG :: InvalidTextRepresentation:錯誤:整數的無效輸入語法:

[英]Friendly_id PG::InvalidTextRepresentation: ERROR: invalid input syntax for integer:

我嘗試使用Friendly_id,但僅對一種模型有錯誤。

軌道型號:

class Track < ApplicationRecord 
  extend FriendlyId
  friendly_id :track_name, use: :slugged
  has_many :pois

poi模型:

class Poi < ApplicationRecord
  extend FriendlyId
  friendly_id :name_and_city, use: :slugged
  belongs_to :track

我需要按曲目列出清單

在我的pois_controller中:

def index
  @pois = Poi.all
  @pois = Poi.where("track_id = ?", params[:track_id])

在我的路線中:

 resources :tracks, only:[], :shallow => true  do
   resources :pois
 end

但是我想去我的pois_index,track_id的參數是一個字符串(段),而不是整數。

我能做什么 ?

在Rails中,將參數插值到原始SQL中的想法很糟糕。 這就是為什么您使用錯誤的語法會出錯。 在這種情況下,您應該使用ActiveRecord。

Poi.where(track_id: params[:track_id])

將參數插值到sql時,應防止sql注入。 ActiveRecord自動執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM