2016-02-19 63 views
0

我試圖建立蛞蝓有這樣的網址: /artists/1/pink-floyd航線形式型號/ ID /名稱

我to_param方法是:

def to_param 
    "#{self.id}/#{self.name.parameterize}" 
    end 

不幸的是網址是/artists/1%2Fpink-floyd 我怎樣才能按照我想要的方式做這項工作?

+0

這並不工作,因爲它試圖使其網址安全的另一個'/'將表明不同的目錄。 – DickieBoy

回答

0

您可以通過多種方式來做到這一點。

,我認爲這將是最接近你想要達到的目標是一樣的東西:

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)

+0

如果我在路線中使用資源會怎麼樣? –