【问题标题】:Customizing map.resources in Rails在 Rails 中自定义 map.resources
【发布时间】:2009-09-21 01:58:01
【问题描述】:

假设我有一个 Book 模型,其中包含许多 Page 模型。

这个路由是这样的:

map.resources :books do |book|
    book.resources :pages
end

遵循 Rails 的默认设置很快就会导致问题。假设书 #1 有 10 页。第 2 册中的第一页将有这条路线:

/books/2/pages/11

这是一条非常糟糕的路线,更有意义的是:

/books/2/pages/1

甚至这个:

/books/2/1

有没有办法仍然使用map.resources,但得到这样的结果:

/books/{book.id}/pages/{page.page_number}

【问题讨论】:

    标签: ruby-on-rails routing


    【解决方案1】:

    没有。您必须为此使用自定义路由。

    随时从http://github.com/augustl/kii/blob/master/config/routes.rb获得灵感

    【讨论】:

    • 哇,这是一些疯狂的路由。看看那肯定会有所帮助,谢谢!
    【解决方案2】:

    正如 August 所说,您需要为此使用自定义路由。 但是对于页面,您不需要完整的资源路线。只需要显示。

    类似:

    map.resources :books do |book|
        book.page ':page_id', :action => 'index'
    end
    

    将映射默认书籍 url 以显示索引、一本书并添加/编辑它们。 也是一页

    /books/{book.id}/{page_id}

    映射到带有参数“page_id”的索引操作。您只需要显示相应的书籍页面;)

    【讨论】:

      【解决方案3】:

      您也可以为您的路由尝试使用 shallow-option!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-07
        • 1970-01-01
        • 2023-04-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多