如何从模型中提取逻辑为Rails的更通用的方式?

时间:2013-04-28 21:55:47

标签: ruby-on-rails ruby

我认为这与“普通旧Ruby对象”有关

我为“log_entry”模型构建了以下方法:

  def parse_time(string)
    parts = string.split(":").map(&:to_f)
    parts = [0] + parts if parts.length == 2
    hours, minutes, seconds = parts
    seconds = hours * 3600 + minutes * 60 + seconds
    seconds.to_i
  end

我想将它提取到一个普通的旧ruby类中,然后在rails log_entry模型类中使用此方法作为neccesscary。

我将把这个类放在哪里,我将如何在rspec中测试它?

1 个答案:

答案 0 :(得分:1)

您不需要在Ruby on Rails中创建这样的方法。它只是以秒数转换时间(字符串)。

您可以使用Time.parse("23:01").seconds_since_midnight

如果您需要在视图/控制器中快速进行此类转换,可以为其添加辅助方法:

app/controllers/application_controller.rb

def parse_time(string)
  Time.parse(string).seconds_since_midnight
end
helper_method :parse_time