Friendly_id PG :: InvalidTextRepresentation: ОШИБКА: неверный синтаксис ввода для целого числа: - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь использовать 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, paramsдля track_id это строка (slug), а не целое число.

Что я могу сделать?

1 Ответ

0 голосов
/ 13 мая 2018

В Rails плохая идея для интерполяции параметров в сырой SQL. Вот почему у вас есть ошибка с неправильным синтаксисом. В этом случае вы должны использовать ActiveRecord.

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

Когда вы интерполируете параметры в sql, вы должны предотвратить внедрение sql. ActiveRecord делает это автоматически.

...