Friendly_id PG::InvalidTextRepresentation: ERROR: invalid input syntax for integer:
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 list by 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 的参数是一个字符串(slug),而不是一个整数。
我能做什么?
在 Rails 中将参数插入原始 SQL 是个坏主意。这就是为什么您会遇到语法错误的错误。在这种情况下,您应该使用 ActiveRecord。
Poi.where(track_id: params[:track_id])
当您将参数插入 sql 时,您应该防止 sql 注入。 ActiveRecord 自动完成。
我尝试使用 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 list by 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 的参数是一个字符串(slug),而不是一个整数。
我能做什么?
在 Rails 中将参数插入原始 SQL 是个坏主意。这就是为什么您会遇到语法错误的错误。在这种情况下,您应该使用 ActiveRecord。
Poi.where(track_id: params[:track_id])
当您将参数插入 sql 时,您应该防止 sql 注入。 ActiveRecord 自动完成。