gpt4 book ai didi

javascript - 如何在标题中使用 Kaminari 分页

转载 作者:行者123 更新时间:2023-11-28 04:38:38 24 4
gpt4 key购买 nike

我正在尝试创建一个具有分页的通知中心(通过 Kaminari)就像 Facebook 一样。

我希望该中心显示任何页面的分页(该中心包含在头文件中)。

现在我已经在下面编写了代码,然后当我访问 home.html 时它会正确显示但它的分页在其他页面中不起作用(例如views/test/test.html.erb)。也许,ajax似乎无法读取js文件,所以如果我将test.js.erb文件放在views/test中,它就会工作。

从运维 Angular 来看,这是不可取的方式。

如何仅使用一个 js.erb 文件来读取分页?谢谢你的帮助

源代码如下。

型号

应用程序/模型/item.rb

class Item < ActiveRecord::Base
paginates_per 50
end

Controller

<小时/>

应用程序/ Controller /items_controller.rb

before_action :pagination


def pagination
@items = Item.page params[:page]
end

查看

<小时/>

app/views/static/home.html.erb

<%= render 'static/header' %>   <!-- reading partial header-->

app/views/static/_header.html.erb

<div><%= render 'application/items', items:@items %></div>      

app/views/static/home.js.erb

    $('#items').append("<%= escape_javascript(render '_items', object: @items) %>");
$("#more_link").replaceWith("<%= escape_javascript(link_to_next_page(@items, 'more', remote: true, id: 'more_link')) %>");

app/views/application/_items.html.erb

<div id="items">
<%= render 'items' %>
</div>
<%= link_to_next_page @items, 'more', remote: true, id: 'more_link' %>

应用程序/ View /应用程序/__items.html.erb

<% @items.each do |item| %>
<div><%= item.name %></div>
<% end %>
<小时/>

最佳答案

我建议创建一个单独的 Controller 操作来处理 ajax 请求:

class ItemsController
def paginate
end
end

然后将js.erb代码移至views/items/paginate.js.erb下。

Kaminari 的 link_to_next_page 帮助程序在内部使用 link_to,因此应该可以添加 controlleraction 参数来链接:

<%= 
link_to_next_page @items, 'more',
controller: 'items',
action: 'paginate',
remote: true,
id: 'more_link'
%>

关于javascript - 如何在标题中使用 Kaminari 分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43967089/

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