首页 文章

ruby基本方法练习代码,索引

提问于
浏览
-1

我正在进行以下代码练习 . 我对Ruby很新,并且一直坚持让最后一个方法工作 . 目前,除了'def page_index'之外,每种方法都可以使用测试代码 . 我在这里错过了什么吗?我似乎无法确定我在这部分做错了什么 . 任何帮助/指导表示赞赏!我还想指出,我删除了所有其他测试代码,并且只是方法的部分当前不起作用 .

代码是作为练习的一部分提供给我们的,我们被告知修复代码以使其与底部提供的测试代码一起运行 . 对于我遇到问题的方法,说明是:page_index获取项索引并返回它所属的页面,它确定项目所在的页面,基于零的索引,此方法应返回-1表示item_index值超出范围 .

class PaginationHelper

    attr_accessor :collection, :items_per_page

    def initialize(collection, items_per_page)
        @collection = collection
        @items_per_page = items_per_page
    end

    def item_count
        puts @collection.length
    end

    def page_count
        puts @collection.length - items_per_page
    end


    def page_item_count(page_index)
        page_item_count = @items_per_page - page_index
        if page_index >= 2
            puts -1, "Page is invalid."
        else 
            puts (@items_per_page - page_index)
        end
    end

    def page_index(index)
        index = @collection - item_index.to_i
        if page_index >= 2
            puts -1, "Page is out of range"
        else 
            puts (@collection-index.to_i)
        end
    end
end


helper = PaginationHelper.new(['a','b','c','d','e','f'], 4)


helper.page_index(5) 
helper.page_index(2) 
helper.page_index(20) 
helper.page_index(-10)

1 回答

  • 2

    我想以下代码是您正在寻找的:

    class PaginationHelper
      attr_accessor :collection, :items_per_page
    
      def initialize(collection, items_per_page)
        @collection = collection
        @items_per_page = items_per_page
      end
    
      def item_count
        puts @collection.length
      end
    
      def page_count
        puts @collection.length - items_per_page
      end
    
      def page_item_count(page_index)
        page_item_count = @items_per_page - page_index
        if page_index >= 2
          puts -1, "Page is invalid."
        else 
          puts (@items_per_page - page_index)
        end
      end
    
      def page_index(item_index)
        index = @collection.length - item_index
        if index <= 0 || item_index < 0
          puts "-1\tPage is out of range"
        else 
          puts (item_index / items_per_page).to_i
        end
      end
    end
    
    helper = PaginationHelper.new(['a','b','c','d','e','f'], 4)
    
    helper.page_index(5) 
    helper.page_index(2) 
    helper.page_index(20) 
    helper.page_index(-10)
    

相关问题