gem 'gibbon'
your_app/config/initializers/gibbon.rb
Gibbon::Request.api_key = "12bfe8bed564a0a4e6b6250baa8f4c51-us14"
Gibbon::Request.timeout = 15
Gibbon::Request.open_timeout = 15
Gibbon::Request.symbolize_keys = true
Gibbon::Request.debug = false
app/controller :-
class HomeController < ApplicationController
def index
gibbon = Gibbon::Request.new(api_key: "12bfe8bed564a0a4e6b6250baa8f4c51-us14", debug: true)
# members = gibbon.lists("5984a13076").members.retrieve
@page = params[:page].present? ? params[:page].to_i : 1
offset = (@page-1) * 50
members = gibbon.lists("5984a13076").members.retrieve(params: {"count": "50", "offset": offset.to_s, "status": "subscribed"})
@contacts = members.body[:members]
@total_pages = (members.body[:total_items]/50.0).ceil
end
end
--------------------------------------------------------------------------------------------------------------------------
Views:-
<div class="row">
<% @contacts.each do |contact| %>
<div class="col-sm-3 text-left">
<a href="mailto:<%= contact[:email_address] %>"><%= contact[:email_address] %></a>
</div>
<% end %>
</div>
<div class="row pull-right">
<nav aria-label="Page navigation " >
<ul class="pagination">
<% if @page > 1 %>
<li class="page-item"><a class="page-link" href="/home/index?page=<%= @page -1%>">Previous</a></li>
<% end %>
<% (1..@total_pages).each do |page|%>
<li class="page-item <%= @page== page ? 'active' : nil %>"><a class="page-link" href="/home/index?page=<%= page %>"><%= page %></a></li>
<% end %>
<% if @page < @total_pages%>
<li class="page-item"><a class="page-link" href="/home/index?page=<%= @page +1%>">Next</a></li>
<% end %>
</ul>
</nav>
</div>
-------------------------------------------------------------------------------------
<style type="text/css">
.pull-right{float: right;}
</style>
No comments:
Post a Comment