2010-03-01 71 views
1

我想讓我的網站更漂亮,仍然使用寧靜的資源。我明白,如果你的對象有一個屬性這樣你就可以覆蓋to_param方法:紅寶石軌道to_param與多個字段的搜索引擎

def to_param 
    self.name 
end 

,這將給你的路線/型號/:命名。這非常簡單,但我必須能夠使用多種不同語言的相同名稱。我一直無法找到關於如何做到這一點的博客條目,所以我如何重寫to_param方法來爲我提供類似於/:model /:language /的名稱:名稱

回答

2

你總是可以這樣做:

/language/:language/model/:name 

你會嵌套途徑做到這一點:

map.resources :languages do |l| 
    l.resources :profiles 
end 

然後你的路線是:

langauge_profile_url('spanish', @profile) 

但是...

根據你的「重新嘗試做你可能會更好地使用內置rails i18n東西。這是否讓用戶可以用不同的語言瀏覽網站?

+0

好的,我該怎麼做? 我的模型是「人」,所以根據這個答案,一個名叫「bob」的人說「西班牙語」將需要被表示爲/ language/spanish/person/bob。看起來合理,你能指點我一個資源如何做到這一點? – Schneems 2010-03-02 00:35:06

+0

你知道如何設置路線來做類似的事嗎? – Schneems 2010-03-02 16:40:07

+0

@snowmaninthesun增加了更多東西。 – jonnii 2010-03-02 18:46:30