无法在Rails settings.yml中创建ActiveSupport :: Duration

时间:2017-03-24 19:51:22

标签: ruby-on-rails

我想在settings.yml中放置一个ActiveSupport :: Duration值。但Settings中的结果值有Fixnum类:

#settings.yml
timeout: <%= 1.hour %>

> Settings.timeout
=> 3600
> Settings.timeout.class
=> Fixnum
> 1.hour.class
=> ActiveSupport::Duration

我如何解决它?

我正在使用带有config gem的Rails 4.2。

2 个答案:

答案 0 :(得分:1)

我找到了解决方案:

description

现在它可以用作#settings.yml timeout: <%= 1.hour %> > Settings.timeout => 3600 > Settings.timeout.seconds => 3600

ActiveSupport::Duration

答案 1 :(得分:0)

使用Ruby to_i方法将值强制转换为整数:

⇒ 1.hour
=> 1 hour
⇒ 1.hour.class
=> ActiveSupport::Duration < Object
⇒ 1.hour.to_i
=> 3600
⇒ 1.hour.to_i.class
=> Fixnum < Integer