我尝试使用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),而不是整数。
我该怎么办?
答案 0 :(得分:0)
在Rails中错误地将params插入到原始SQL中。这就是为什么你有错误的语法错误。在这种情况下,您应该使用ActiveRecord。
Poi.where(track_id: params[:track_id])
当你将params插入sql时,你应该阻止sql注入。 ActiveRecord自动完成。