2012-05-03 3 views
0

CarrierWave(0.6.1)とNested Form gemがインストールされています。 FileUploaderを持つ多くの添付ファイルを持つリソースモデルがあります。CarrierWaveとNested Form Gemの再表示

ユーザーは1つのリソースで複数のファイルをアップロードできる入れ子になっています。私はgithub(https://github.com/jnicklas/carrierwave)のセクションに従っています。これは、再表示を超えてアップロードを動作させる方法は、残念ながら1:1の比率だからです。ここで

は、私が持っているコードです:

<%= nested_form_for @resource, :html=>{:multipart => true } do |f| %> 
    <p> 
     <%= f.label :title %> 
     <%= f.text_field :title %> 
    </p> 
    <%= f.fields_for :attachments, @attachment do |attachment_form| %> 
     <p> 
      <%= attachment_form.label :file %> 
      <%= attachment_form.file_field :file %> 
      <%= attachment_form.hidden_field :file_cache %> 
      <%= image_tag(attachment_form.file_url) if attachment_form.file? # DOESN'T WORK!!! %> 
     </p> 
     <%= attachment_form.link_to_remove "Remove this attachment" %> 
    <% end %> 
    <%= f.link_to_add "Add attachment", :attachments %> 
    <p><%= f.submit %></p> 
<% end %> 

すべてが動作し、それはしかし、私は何とかユーザーにの画像を表示するためにそこに次の行を追加する必要がattachment_formためうまくfile_cache変数を移入します文書:

<%= image_tag(attachment_form.file_url) if attachment_form.file? %> 

しかし、これには多くの問題があります。まず、attachment_formはform_builderを参照していますが、実際の添付が必要です。第二に、添付ファイルは何も知らない。

おそらく別のタイプのループ機構を使用する必要がありますが、私はRubyを初めて使用しているので、助けてください。

ありがとうございます!

答えて

1

あなたがしようとすると、この:

<%= image_tag(attachment_form.object.file_url) if attachment_form.object.file? %> 

あなたは以前アップロードした画像を表示することができるようになります。しかし、今すぐアップロードしたものを表示したい場合は、別のものを使用する必要があります。例:https://github.com/blueimp/jQuery-File-Upload/wiki/jQuery-File-Upload-v4-for-Rails-3 申し訳ありませんが、あなたの質問に誤解があった場合。

+0

awesome!正確には私が必要なものではありませんが、私はフォームの 'オブジェクト'属性について知らなかった...私は正しい方向に向かっていると思う。ありがとう! – schmudu

+0

しかし、オブジェクトはどこから来ますか。私はあなたの答えで失われたlitteです。トンボの宝石でこれをしようとしています。 – Benjamin