0

私はすでに同様の質問を投稿しましたが、自分で解決して、これまでの質問をここに投稿するように言われました。

私がやっていることは、外部アプリからいくつかのデータを抽出するためにいくつかのxmlrpcメソッドを呼び出すことです。

これまでにできることは、以下のように単純な配列からコンテンツを表示することです。

<%  @attachment.each do |att| %>
<div class="item">
    <%= image_tag att %>         
</div>

私が欲しいのは、これに似たハッシュ配列を渡すことができるようにすることです:

 {id:"1", content:"somedataaa", imgurl:"someurl.com/image.jpg"}

私が欲しいのは、ユーザーが画像をクリックしてIDをコントローラーメソッドに渡し、提供されたIDを使用してさらにデータを取得し、別のビューを提供できるようにすることです。

 <%  @hasharray.each do |att| %>
    <div class="item">      
     <%= att.id %> //this could be hidden an only used to pass the id to a method
    <%= image_tag att.url %> //add a link_to here somehow to route to a method on the controller.        
    </div>

Railsモデルデータでこれを行う方法は知っていますが、このデータは外部xmlrpcからのものであるため、ハッシュ配列として渡す必要があります。

これを行う必要がある方法を教えていただけますか、これは正しい方法ですか、またはハッシュ配列を解析してRailsモデルに保存し、ビューを通常どおりに使用してルートにアクセスできるようにすることはできますか?

4

2 に答える 2

1

モデルの代わりにハッシュを渡し、 。att[:id]の代わりに私たちを渡すことができatt.idます。

ハッシュではなくモデルにする必要がある場合は、ハッシュをモデルに変換するためのいくつかの方法を提供するHashieを参照してください: https ://github.com/intridea/hashie

于 2012-08-02T05:50:45.757 に答える
1
attachments = [{ :id => 1, :url => 'images/1.jpg' }, { :id => 2, :url => 'images/2.jpg' }]

attachments.each do |attachment|

  link_to image_tag(attachment[:url]), "/path/to/controller/#{attachment[:id]}/show"

end

補足:適切な命名規則に従ってください。変数に「hasharray」、「hash」、「array」などの名前を付けないでください。それらを意味のあるものにします。お願いします。

これを読むと役立ちます:http ://www.ruby-doc.org/core-1.9.3/Hash.html

于 2012-08-02T06:02:19.613 に答える