gpt4 book ai didi

ruby-on-rails - 将分页、嵌套路线、ruby、rails

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:01 24 4
gpt4 key购买 nike

我试图让 will paginate 链接到我的嵌套路由而不是常规的 posts 变量。我知道我应该传递一些参数来进行分页,但我不知道如何传递它们。

基本上有一个数组存储在@posts中分页可以访问的另一个参数是 category_id .

嵌套路由是/category/1/posts但是点击 next 和 previous 将分页返回这样的 url posts?page=1&category_id=7 .

 <%= will_paginate @most_recent_posts "What do I do here?" %>

这是雅尼斯回答的结果:

在你的 Controller 中你可以做:

@posts = @category.posts.paginate

在你看来:

<%= will_paginate(@post) %>

这样做会产生以下 URL

posts?page=2&post_category_id=athlete_management

routes.rb #还有更多路线,但这些是相关的

map.resources :posts
map.resources :post_categories, :has_many => :posts

解决方案

 map.resources :post_categories do |post_category|
post_category.resources :posts
end
map.resources :posts

必须在 block 之后声明资源

谢谢斯蒂芬!

最佳答案

因为我遇到了同样的问题,所以在这个老问题上跳伞。

我遇到了几乎完全相同的问题。我听从了响应者的建议,路线上发生了一些奇怪的事情。我深入研究了路线并发现(根据您的情况进行翻译):

resources :posts
resources :categories do
resources :posts
end

这使得调用 category_posts_path 返回(如预期)/category/1/posts

但是,认识到 will_paginate 调用类似于 url_for 的东西非常重要,它从路由“向后”工作以找到与参数匹配的第一条路由.

由于 resources :posts 出现在嵌套路由之上,它认为那个满足要求并且只是插入 category_id=1 是一个查询字符串。

它对其他人“开箱即用”的原因是因为他们没有将嵌套资源单独列为独立资源。

删除它,你应该没问题!

关于ruby-on-rails - 将分页、嵌套路线、ruby、rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4005366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com