1) патч activeresource со следующим кодом
module ActiveResource
class Connection
alias_method :origin_handle_response, :handle_response
def handle_response(response)
Thread.current["active_resource_response_#{self.object_id}"] = response
origin_handle_response(response)
end
def response
Thread.current["active_resource_response_#{self.object_id}"]
end
end
end
это добавит возможность прочитать ответ после того, как метод остальное выполняется 2) на стороне сервера с Kaminari вы можете сделать следующий
@users = User.page(params[:page]).per(params[:per_page])
response.headers["total"] = @users.total_count.to_s
response.headers["offset"] = @users.offset_value.to_s
response.headers["limit"] = @users.limit_value.to_s
respond_with(@users)
3) на стороне клиента снова с kaminari
users = Users.all(:params=>params)
response = Users.connection.response
@users = Kaminari::PaginatableArray.new(
users,
{
:limit => response['limit'].to_i ,
:offset =>response['offset'].to_i ,
:total_count => response['total'].to_i
}
)
я добавил драгоценный камень для стороны клиента https://rubygems.org/gems/activeresource-response – Fivell