【问题标题】:How to write increase day helper in Rails?如何在 Rails 中编写增加日助手?
【发布时间】:2012-07-29 16:59:10
【问题描述】:

我有以下助手,它应该根据数字来表达一天:

def day_in_words(number)
    case number
    when 0
      "Sunday"
    when 1
      "Monday"
    when 2
      "Tuesday"
    when 3
      "Wednesday"
    when 4
      "Thursday"
    when 5
      "Friday"
    when 6
      "Saturday"
    when 7
      "Sunday"
    when 8
      "Monday"
    when 9
      "Tuesday"
    when 10
      "Wednesday"
    when 11
      "Thursday"
    ...
    when 16
      "Sunday"
    when 17
      "Monday"
    when 18
      "Tuesday"
    when 19
      "Wednesday"
    when 20
      "Thursday"
    when 21
      "Friday"
    else
      "Unknown Day"
    end
  end

如何重构那个助手?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 refactoring helper


    【解决方案1】:

    你有没有试过这个可能 ->

    Date::DAYNAMES[number%7]
    

    【讨论】:

      【解决方案2】:

      你可以使用:

      def day_in_words(number)
        return "Unknown Day" if number > 20
        %w[sun mon tue wed thu fri sat].cycle(3).to_a[number]
      end
      

      【讨论】:

        【解决方案3】:

        首先想到的是简单地使用模 7 作为日期名称数组的索引:

        def day_in_words(number)
          return ['Sun','Mon','Tue','Wed','Thurs','Fri','Sat'][number % 7]
        end
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-01-08
          • 2018-03-08
          • 2020-05-05
          • 1970-01-01
          • 2010-10-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多