在Rails中查询Postgres JSON

时间:2015-01-24 15:56:05

标签: ruby-on-rails json postgresql ruby-on-rails-4

我要做的是在表格中显示Postgres的数据。 数据以JSON格式存储在Postgres中,db看起来或多或少像:

| id | data                 | created_at | updated_at |
|----|----------------------|------------|------------|
| 1  | [{"some_data": 90... | 2014-12-02 | 2014-12-02 |
| 2  | [{"some_data": 16... | 2014-12-03 | 2014-12-03 |
| 3  | [{"some_data": 38... | 2014-12-04 | 2014-12-04 |

对于快速黑客,我将data列加载到@data,如:

def index
  @data = Hack.pluck(:data).last
end

然后在视图中我会这样做:

<table>
  <thead>
    <tr>
      <th>ID</th>
      <th>Name</th>
    </tr>
  </thead>
  <tbody>
  <% @data.each do |d|%>
    <tr>
      <th><%= d["some_data"][0] %></th>
      <th><%= d["some_data"][1]["name"]</th>
    </tr>
  <% end %>
  </tbody>
</table>

问题是我最终得到了巨大的变量&#34; (d["some_data"][1]["name"]),如果我想做一些计算,我知道它不应该在视图中处理。

RoR中最好的成就是什么? 我想我会有类似的东西:

<table>
  <thead>
    <tr>
      <th>ID</th>
      <th>Name</th>
    </tr>
  </thead>
  <tbody>
  <% @data.each do |d|%>
    <tr>
      <th><%= d.id %></th>
      <th><%= d.name %></th>
    </tr>
  <% end %>
  </tbody>
</table>

0 个答案:

没有答案