0

Cassandra からの json スタイルの結果を解析するにはどうすればよいですか? Rails に cassandra-cql gem を使用しており、クエリ結果を解析してすべてのメッセージを一覧表示したいと考えています。私のクエリは次のようになります。

def self.get_messages uid
  @@db.execute("SELECT * FROM messages WHERE uid=?", uid)
end

すべてのメッセージを一覧表示するにはどうすればよいですか? 私の現在の見解は次のとおりです。

<% json_dec = ActiveSupport::JSON.decode(u.row.to_json) %>
<% json_dec.each do |f| %>
  <%= f[1] %><br/>
<%end%>

そしてそれは戻ります:

1
[{"name"=>"uid", "value"=>"1", "timestamp"=>-1}, {"name"=>"1326751801", "value"=>"test content", "timestamp"=>1326751801970000}, {"name"=>"1326754147", "value"=>"some content to test", "timestamp"=>1326754147612000}]

クエリのより良い方法はありますか? 他の人はこの問題をどのように解決しますか?

4

1 に答える 1

2

jsonにエンコードし、再度デコードしてもあまり意味がありません。代わりに#to_hash、のハッシュを提供する行オブジェクトを呼び出すことができますcolumn_name => value。次に、それを繰り返すことができます。

<% row.to_hash.each do |key, value| %>
  <p>key: <%= key %>, value: <%= value %></p>
<%end%>

また、get_messageの実装を変更して呼び出す必要があるようですfetch

def self.get_messages uid
  @@db.execute("SELECT * FROM messages WHERE uid=?", uid).fetch
end 
于 2012-01-17T02:22:30.523 に答える