私はRoRを初めて使用し、WindowsAzureアカウントのすべてのコンテナー/ファイルを一覧表示するアプリをセットアップしようとしています。waz-storage gemを使用すると、コンテナとその中のblobを見つけることができますが、私が抱えている問題は、返されたコンテナのリストをメタデータプロパティの1つで並べ替えるだけでなく、ユーザーの電子メール。
を使用しcontainer.list
て、次のような各コンテナのリストを取得します。
[#<WAZ::Blobs::Container:0x60295f8 @name="12345">, #<WAZ::Blobs::Container:0x60295b0 @name="23456">, #<WAZ::Blobs::Container:0x6029580 @name="34567">]
各コンテナには、次のコマンドを呼び出すことで取得できる独自のメタデータがあります@container.metadata
。
{:transfer_encoding=>"chunked", :last_modified=>"Thu, 13 Dec 2012 06:01:23 GMT", :etag=>"\"0x8CFA70E6A590AD9\"", :server=>"Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0", :x_ms_request_id=>"a2cbc9ba-9e59-4c27-8a50-c54b405cbb1b", :x_ms_version=>"2011-08-18", :x_ms_meta_customername=>"Sample Name", :x_ms_meta_useremail=>"user@example.com", :date=>"Thu, 13 Dec 2012 16:29:16 GMT"}
ビューで、各コンテナを一覧表示し、プロパティを使用してそのコンテナにリンクし:x_ms_meta_customername
ます。私は次のような見方でその点に到達しました:
<% @containerlist.each do |container| %>
<li><%= link_to container.metadata[:x_ms_meta_customername], root_url(:container => container.name) %></li>
<% end %>
ビュー内のリンクは、container.name
上記のリストから「12345」、「23456」、「34567」の値の順に作成されます。代わりに、リストをで並べ替えて:x_ms_meta_customername
ください。
リストをソートするためにいくつかの異なることを試みましたが、リストをソートしないか、文字列を整数に変換する際にエラーが発生することになります。私はこれについてすべて間違っているかもしれません。
もう1つやりたいのは、:x_ms_meta_useremail
プロパティに基づいてリストをフィルタリングすることです。ほとんどすべてのユーザーが常にリスト全体を表示しますが、メタデータに電子メールが含まれているコンテナーにのみアクセスできるユーザーもいます。
いくつか検索しましたが、役立つものが見つからないようです。行き止まりになりました。
私が知りたいもう1つのことは、このすべての作業をビューで実行する必要があるかどうかです。または、このロジックをモデルまたはコントローラーに移動しますか?
どんな助けでも大歓迎です!