2012-01-25 62 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

有趣的 - 我会给它一个镜头(......很快......优先级已降低;-))。谢谢! –