【问题标题】:Unable to create friendly url using kaminari and nested routes (rails 4.2.4)无法使用 kaminari 和嵌套路由创建友好 url (rails 4.2.4)
【发布时间】:2016-05-08 21:11:16
【问题描述】:

我有一个名为 Book 的模型和这本书 has_many Pages(Page.rb - model)。基本上,我正在尝试重新创建一本包含内容的书,并且可以使用<%= link_to_next_page @pages, 'Next Page' %> 和 上一页帮助方法。我只使用@pages = @book.pages.page(params[:page]).per(1) 渲染一页,如 kaminari github 页面所述。另外,我对 Book 和 Page 模型都使用了友好 ID gem。

url 是这样渲染的:-

localhost:3000/tutorials/create-a-book/pages/introduction?&page=1

下一页链接是这样的:-

localhost:3000/tutorials/create-a-book/pages/introduction?&page=2

我希望链接显示为:-

localhost:3000/tutorials/create-a-book/pages/introduction

下一页如下:-

localhost:3000/tutorials/create-a-book/pages/getting-started

我尝试按照Kaminari Github Page - Creating friendly URLs and caching 给出的说明进行操作,但无法理解它,因为我无法理解路由部分。我也搜索了 wiki,但找不到与上述问题相关的任何内容。

【问题讨论】:

    标签: ruby-on-rails pagination kaminari


    【解决方案1】:

    使用 Kaminari 你可以拥有

    localhost:3000/tutorials/create-a-book/pages/introduction?&page=1
    localhost:3000/tutorials/create-a-book/pages/introduction?&page=2
    

    localhost:3000/tutorials/create-a-book/pages/introduction/page/1
    localhost:3000/tutorials/create-a-book/pages/introduction/page/2
    

    这就是 Kaminari 能为您做的一切。 Kaminari 猜不出你想如何命名每一页。而且,据我所知,Kaminari 不支持命名页面。 (我指的“页面”是分页生成的页面。在您的示例中,您还有一个名为“页面”的模型,我建议您不要为两个不同的事物使用相同的名称!)

    要获得你想要的,你必须正确地路由它 (guide) 并自己在视图中链接它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-22
      • 2010-09-20
      • 1970-01-01
      • 2023-03-16
      • 2011-07-14
      • 2012-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多