2012-01-25 64 views
0

HEJ人的ID對象,路線由相關對象

我目前完全套牢以下,甚至不具備絲毫的想法如何進行,所以用我的Rails 3(任何幫助。 1)-app,將不勝感激:

我有一個「DOCUMENT_TYPE」,可以「有很多」(版本)「文件」,可以通過讀取像domain.com/d<id of form>短網址進行訪問 - 爲文檔一樣domain.com/d12與編號12.到目前爲止沒有什麼特別的。但是現在我被要求改變(或者更準確地說,增加)一個路由,允許通過document_type的id和文檔的id:domain.com/t2v3(或者類似的東西)來訪問,其中「2」是document_type_id,「3」是文檔的版本(在文檔表中都是o/c)。

對我有什麼(以防萬一......)的代碼是:

match 'd:id', :controller => 'documents', :action => 'show', :id => 'id'

我只是無法弄清楚如何(或者即使...),這可能是完成...

tyia!

回答

1

如果url的格式是靈活的,我會改變它:domain.com/t2/v3

然後你的路線將如下所示:

get 't:type_id/v:version_id', :to => 'documents#show_version' 
+0

可惜這不是(至少沒有附加「/」等符號): -/ –

+0

...我會接受這個解決方案,這就是我最終做到的 - 即使這不完全是我想要的。 –

0

tAnother的做法可能是避免路線儘可能簡單:

get ':id', :controller => 'documents', :action => 'show' 

然後你可以使用friendly_id與「友好」來替換默認的整數標識符。

class Document < ActiveRecord::Base 
    extend FriendlyId 

    friendly_id :doc_id, :use => :slugged 

    def doc_id 
    "t#{id}v#{version}" 
    end 
end 

更多關於這個有用的寶石在這裏:http://rubydoc.info/github/norman/friendly_id/master/file/Guide.rdoc

+0

有趣的 - 我會給它一個鏡頭(......很快......優先級已降低;-))。謝謝! –