Rails Ruby 对于 Postgresql 中的 Time 类型 field 怎么处理?

clc3123 · 2012年01月27日 · 3528 次阅读

当前 Rails 中,将数据库(我用的 pg)中的 Time(不包括日期信息!)对应到 ruby 的 Time(有 date!),这样无中生有的添加上一个“2000-01-01”的日期。

def simplified_type(field_type)
  case field_type
  when /int/i
    :integer
  when /float|double/i
    :float
  when /decimal|numeric|number/i
    extract_scale(field_type) == 0 ? :integer : :decimal
  when /datetime/i
    :datetime
  when /timestamp/i
    :timestamp
  when /time/i
    :time
  when /date/i
    :date
  when /clob/i, /text/i
    :text
  when /blob/i, /binary/i
    :binary
  when /char/i, /string/i
    :string
  when /boolean/i
    :boolean
  end
end

请问如何处理这样的问题? 我的 workaround 就是用 strftime 在显示的时候做个处理,但有其它方法吗? 在 rails 中有什么方法能在 record load 出来的时候就自动转换或变动数据信息的吗? 最后这问题一直想问的~

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号