在呈现为JSON之前格式化活动记录数据

时间:2015-04-01 13:50:16

标签: ruby-on-rails json

我有一个数据表,我将转换为Ajax,并且必须将JSON值格式化为正确的格式。

在此示例中,我如何将tables.created_at时间戳格式化为MM / DD 格式...

tables = Table.where(:state => "Missouri")

respond_to do |format|
  format.json { render json: tables }
end

在DOM中,我会遍历数据并在需要的地方执行此操作:Chronic.parse(s.created_at.to_date).strftime("%m/%d")

正如您所看到的,在将数据作为JSON返回之前,我有很多其他格式要对数据执行:

  <% if @load_search.nil? %>
      <tr></tr>
  <% else %>
      <% @load_search.each do |s| %>
          <tr id="row_<%= s.id %>">
            <td align="center">
              <%= s.id %>
            </td>
            <td class="count" align="center">
              <%= s.results %>
            </td>
            <td align="center">
              <%= Chronic.parse(s.created_at.to_date).strftime("%m/%d") %>
            </td>
            <td align="center">
              <% if s.equipment.empty? %>
                  All Equipment
              <% else %>
                  <%= s.equipment.pluck(:code).to_s.gsub("[","").gsub(']','').gsub('"','') %>
              <% end %>
            </td>
            <td align="center">
              <% if s.origin_id.nil? %>
                  <%= s.origin_states %>
              <% else %>
                  <%= Location.find(s.origin_id).cs unless s.origin_id.nil? %>
              <% end %>
            </td>
            <td align="center">
              <%= s.origin_radius_cs %>
            </td>
            <td align="center">
              <% if s.dest_id.nil?  %>
                  <%= s.dest_states %>
              <% else %>
                  <%= Location.find(s.dest_id).cs unless s.dest_id.nil? %>
              <% end %>
            </td>
            <td align="center">
              <%= s.dest_radius_cs %>
            </td>
            <td align="center">
              <%= s.length.to_s + ' ft.' unless s.length.nil? %>
            </td>
            <td align="center">
              <%= s.weight.to_s + ',000 lbs' unless s.weight.nil? %>
            </td>
            <td align="center">
              <% if s.ltl %>
                  Partial
              <% elsif s.both %>
                  Full
              <% else %>
                  Both
              <% end %>
            </td>
            <td align="center">
              <%= Chronic.parse(s.pickup.to_date).strftime("%m/%d") %>
            </td>
            <td align="center">
              <%= Chronic.parse(s.delivery.to_date).strftime("%m/%d") unless s.delivery.nil?%>
            </td>
          </tr>
      <% end %>
  <% end %>

1 个答案:

答案 0 :(得分:0)

您可以将ActiveRecord getter覆盖为

class Model
  def created_at 
    self[:created_at].strftime("%m/%d")
  end
end