我试图建立蛞蝓有这样的网址: /artists/1/pink-floyd
航线形式型号/ ID /名称
我to_param方法是:
def to_param
"#{self.id}/#{self.name.parameterize}"
end
不幸的是网址是/artists/1%2Fpink-floyd
我怎样才能按照我想要的方式做这项工作?
我试图建立蛞蝓有这样的网址: /artists/1/pink-floyd
航线形式型号/ ID /名称
我to_param方法是:
def to_param
"#{self.id}/#{self.name.parameterize}"
end
不幸的是网址是/artists/1%2Fpink-floyd
我怎样才能按照我想要的方式做这项工作?
您可以通过多种方式来做到这一点。
,我认为这将是最接近你想要达到的目标是一样的东西:
def to_param
"#{self.id}-#{self.name.parameterize}"
end
这使得:
/artists/1-pink-floyd
另一种方法是改变路线:
get "/artists/:id/:parameterized_name" => "artists#show", as: :artist
这会给你的控制器动作参数:parameterized_name
。
要在视图中使用它:
artist_path(artist, parameterized_name: artist.name.parameterize)
如果我在路线中使用资源会怎么样? –
这并不工作,因为它试图使其网址安全的另一个'/'将表明不同的目录。 – DickieBoy