Hej伙计,
我目前完全坚持以下内容,甚至没有任何想法如何继续,所以任何帮助我的Rails 3(.1)-app将不胜感激:
我有一个“document_type”可以“有很多”(版本)“文档”,可以通过一个简短的URL访问,类似于domain.com/d<id of form>
- 如同domain.com/d12
的文档一样id 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!
答案 0 :(得分:1)
如果网址的格式灵活,我会更改它:domain.com/t2/v3
然后你的路线看起来像:
get 't:type_id/v:version_id', :to => 'documents#show_version'
答案 1 :(得分:0)
t另一种方法可能是让您的路线尽可能简单:
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