【问题标题】:Ruby on Rails: undefined method `min' for {......}:StringRuby on Rails:{......}:String 的未定义方法“min”
【发布时间】:2016-04-25 10:39:24
【问题描述】:

在我的 RoR 应用程序中使用帮助程序 time_select 时遇到问题。

例如,我在应用程序中有一个表单来提交食谱,在_form.html.erb中我有以下字段用于时间

<div class="form-group">
    <%= f.label :tiempo, :class => 'control-label col-lg-2' %>
    <div class="col-lg-10">
      <%= f.time_select  :tiempo, :required => true,:class => 'form-control' %>
    </div>
    <%=f.error_span(:tiempo) %>
  </div>

它有效,但问题是当我尝试编辑配方时,我收到以下错误,例如

undefined method `min' for "{1=>2016, 2=>1, 3=>19, 4=>19, 5=>28}":String

我知道这是因为我在数据库中将哈希保存为字符串,当我尝试编辑值时,time_select 正在寻找哈希而不是字符串,问题是我不确定如何修复它

编辑:

最终解决了将“tiempo”类型从字符串转换为时间的问题

【问题讨论】:

  • 数据库中tiempo列的类型是什么?
  • 是一个字符串,我应该把它改成日期吗?
  • 感谢@spickermann,我将“tiempo”类型从字符串更改为时间并且它起作用了

标签: ruby-on-rails ruby string hash


【解决方案1】:

要存储带有时间的日期,请将数据库列的类型更改为datetime

【讨论】:

  • 正是这个答案。我想写它并获得所有声誉,但你我的朋友已经写了它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-21
  • 1970-01-01
  • 2016-12-15
  • 2019-10-31
相关资源
最近更新 更多