如何路线到书/ id / 1

时间:2012-06-20 10:29:13

标签: ruby-on-rails resources

我有书籍作为资源和id,ean,isbn是它的属性。 我希望将其作为books/id/1books/isbn/1212100000books/ean/1313911

进行访问

在我的routes.rb中,我写了以下内容。

   resources :books do
        collection do
            get 'isbn'
            get 'ean'
            get 'id'
        end
    end

但是,当我尝试访问l ocalhost:3000/books/id/1时, 它给.... 没有路线匹配“/books/id/1

我可以访问localhost:3000/books/id。 这意味着我需要在routes.rb中编写单独的映射,但那么资源声明的用途是什么?

任何人都可以建议我在不编写显式映射的情况下执行此操作。

2 个答案:

答案 0 :(得分:2)

收集路由预计会返回多个结果,因此没有id参数。如果你想要id,请使用成员路由,例如:

resources :books do
    member do
        get 'isbn'
        get 'ean'
        get 'id'
    end
end

答案 1 :(得分:-1)

添加

match ':controller/:action/:id/'

到您的routes.rb,接近结尾。