DBMS 是 PostgreSQL。
在控制器中:
@data = current_user.myitems.all(:select => 'record_date, count(record_date) as value', :group => 'record_date')
在一个视图中:
<% @data.each do |item| -%>
<%= item.record_date.utc.strftime('%Y%m%d') %>
<% end -%>
一切正常。
但是,如果我更改日期字段名称:
@data = current_user.myitems.all(:select => 'record_date as recdate, count(record_date) as value', :group => 'record_date')
<% @data.each do |item| -%>
<%= item.recdate.utc.strftime('%Y%m%d') %>
<% end -%>
我收到错误消息:
undefined method `utc' for "2012-02-09 17:03:47":String
怎么回事??!!我没有命令将类型转换为字符串!!!
您可能建议不要在 SQL 字符串中创建别名或在模型中定义别名,但我不想更改模型来为列创建别名,因为我只需要一次别名并且仅用于显示目的。控制器的方法具有“ case ”语句,其中存在多个 select 语句,每个语句都有自己的列名。我需要制作别名以获得可靠的视图,而不需要“if”语句。