Friendly_id PG :: InvalidTextRepresentation:ERROR:整数的输入语法无效:

时间:2018-05-12 15:45:46

标签: ruby-on-rails friendly-id

我尝试使用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列表

在我的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的参数是一个字符串(slug),而不是整数。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

在Rails中错误地将params插入到原始SQL中。这就是为什么你有错误的语法错误。在这种情况下,您应该使用ActiveRecord。

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

当你将params插入sql时,你应该阻止sql注入。 ActiveRecord自动完成。

相关问题