will_paginate不为页面创建URL

时间:2018-08-20 14:26:30

标签: ruby-on-rails ruby-on-rails-5 will-paginate

我正在使用will_paginate宝石来进行无限滚动。

will_paginate gem通常根据数据大小为每个页面创建链接。

我目前有42行正在获取,并且我将per_page设置为per_page = 8

控制器代码:

page = params[:page]
per_page = 8

@ads = FbAd.get(current_users_user, page, per_page)

respond_to do |format|
  format.html
  format.js
end

型号代码:

ads = FbAd.active
              .select("fb_ads.id AS ad_id,
                     ac.fb_id AS creative_id,
                     acoss.source_page_id,
                     ald.link,
                     ald.call_to_action_type,
                     ald.message,
                     ald.name,
                     uass.url,
                     uass.file_type,
                     fbp.name AS page_name,
                     fbp.thumbnail_url")
              .where("fb_ads.user_id = ?", userId)
              .joins("INNER JOIN fb_adcreatives ac ON fb_ads.fb_adcreative_id = ac.id")
              .joins("INNER JOIN fb_adcreative_object_story_specs acoss ON ac.fb_adcreative_object_story_spec_id = acoss.id")
              .joins("INNER JOIN fb_adcreative_link_data ald ON ald.fb_adcreative_object_story_spec_id = acoss.id")
              .joins("INNER JOIN fb_assets ass ON ass.fb_id = ald.image_hash")
              .joins("INNER JOIN user_assets uass on uass.id = ass.user_asset_id")
              .joins("INNER JOIN fb_pages fbp on fbp.fb_id = acoss.source_page_id")
              .group("fb_ads.id, acoss.source_page_id, ald.link, ald.call_to_action_type, ald.message, ald.name, uass.url, 
                      uass.file_type, fbp.name, fbp.thumbnail_url, ac.fb_id")
              .paginate(:page => page, :per_page => per_page)

    ads

我的问题是,提取数据时,gem没有为下一页创建任何链接

这是我的HTML代码:

  <section class="mt-7 mb-6">
    <div class="container" style="display: none;">

        <%= will_paginate @ads %>
    </div>        
  </section>

这是我加载页面时DOM的外观:

enter image description here

我想知道是否缺少导致该问题的原因,我在同一项目中使用了相同的代码,但是我似乎无法弄清楚是什么原因或可能导致此问题的原因。

编辑:

如果我显示page_entries_info,则当显示8时它说有1条记录:

<div class="mt-5">
    <%= page_entries_info @ads %>

</div>

显示:

显示1个Fb广告

编辑2:

这与我的查询有关。由于某种原因,will_paginate认为我有1条记录。

如果我只获取

ads = FbAd.active.paginate(:page => page, :per_page => per_page)

它生成链接。

我尝试仅制作原始SQL并像这样获取它

ads = ActiveRecord::Base.connection.select_all(sql)

但是返回一个哈希值,我需要活动记录对象。

0 个答案:

没有答案