【问题标题】:Paginating Tags in Rails 4Rails 4 中的分页标签
【发布时间】:2014-06-05 07:18:36
【问题描述】:

我正在使用 Kaminari 对我的帖子页面进行分页。一篇文章有​​许多标签,每个标签都链接到一个“显示”页面,该页面显示带有该标签的所有文章。我正在尝试对这个标签页面进行分页,但它从来没有完全工作过。

标签/显示

<div class="post-index">
    <h1><%= @tag.name %></h1>
    <ul>
      <% @tag.posts.each do |post| %>
        <li>
            <div class="post">
                <div class="featured-image">
                    <%= link_to image_tag(post.featured_image.url(:featured)), post_path(post) %>
                </div>

                <div class="info">
                    <div class="title">
                        <h2><%= link_to post.title, post_path(post) %></h2>
                    </div>

                    <div class="excerpt">
                        <p><%= truncate(strip_tags(post.body), length: 360) %></p>
                    </div>
                </div>
              </div>
            </li>
      <% end %>
    </ul>
    <%= paginate @tags %>
</div>

标签.rb

lass Tag < ActiveRecord::Base
    has_many :taggings
    has_many :posts, through: :taggings

    paginates_per 2
end

tags_controller.rb

class TagsController < ApplicationController
    def show
    @tag = Tag.find(params[:id]).page(params[:page])
    end
end

我已经尝试了所有我能想到的。 Kaminari 使用的例子是

tag = Tag.order(:name).page(params[:page])

但这不起作用并返回无方法“发布”错误。我尝试对帖子模型进行分页,但这不起作用。

如果我删除任何分页引用,它会在标签页上正确显示所有帖子。

感谢您的建议

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 pagination tags


    【解决方案1】:

    我不确定您要分页什么?标签或帖子?在您的代码中,您想对“@tags”进行分页,但您从未定义“@tags”。

    @tag = Tag.find(params[:id]) 
    @posts = @tag.posts.page(params[:page])
    

    【讨论】:

    • 啊,是的,在我乱七八糟地尝试了很多东西之后就是这样。无论哪种方式,@tag@tags 都没有改变。我想在标签控制器/视图中对帖子进行分页。帖子属于标签,所以我想我需要对其进行分页。 P.S 我什么都不知道,真正的初学者。
    • 您可以使用“@tag = Tag.find(params[:id])”获取当前标签。然后“@tag.posts”可以获取所有属于这个标签的帖子。
    • 是的,现在就是这样。我的问题是现在对帖子进行分页。
    • 你现在有什么问题?
    • 您是否更改了答案?我使用了第二行(之前没有看到),现在可以使用了。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    • 2019-01-14
    • 1970-01-01
    相关资源
    最近更新 更多