2012-04-22 7 views
12

私は以下のフォームの編集ページを作成したいと思います。問題は、ユーザーが編集ページを閲覧するときにブランド名と名前があらかじめ入力されているが、画像アップロードフィールドに「スタイル」のアバターが存在する場合でも「ファイルが選択されていません」と表示されるという問題です。これを解決する方法があれば教えてください。ありがとう!multipart simple_formでpaperclipアバターを更新する

私の編集フォーム:

<%= simple_form_for @style, :html => { :class => 'form-horizontal' }, :remote => true do |m| %> 

    <%= m.input :brand_name, :label => 'Brand', :placeholder => 'Brand' %>  
    <%= m.input :name, :label => 'Style', :placeholder => 'Style' %> 
    <%= m.input :avatar, :label => "Image" %> 

    <div class="form-actions" style = "background:none"> 
     <%= m.submit nil, :class => 'btn btn-primary' %> 
     <%= link_to 'Cancel', styles_path, :class => 'btn' %> 
    </div> 

<% end %> 

答えて

18

これは昨日実装されました。 /アプリでカスタム入力してください/入力

その後
class AvatarInput < SimpleForm::Inputs::FileInput 
def input 
out = '' # the output string we're going to build 
# check if there's an uploaded file (eg: edit mode or form not saved) 
if object.send("#{attribute_name}?") 
    # append preview image to output 
    # <%= image_tag @user.avatar.url(:thumb), :class => 'thumbnail', id: 'avatar' %> 
    out << template.image_tag(object.send(attribute_name).url(:thumb), :class => 'thumbnail', id: 'avatar') 
    end 
# append file input. it will work accordingly with your simple_form wrappers 
    (out << @builder.file_field(attribute_name, input_html_options)).html_safe 
    end 
end 

あなたはこれはこれは(HAMLで)動作するために、私は必要なすべてのです

<%= f.input :avatar, :as => :avatar %> 
+0

gemをフォークしてsimple_form/lib/simple_form/inputsに追加する必要がありますか? – Abram

+0

ちょうどそれを私のアプリに入れました...インプットの中に...素晴らしい仕事。 – Abram

+0

よろしく!私はそれがうまくいってうれしいです。私は賞金を手に入れますか? :) – DVG

0

paperclip's github pageから新規/編集ビューのコードは次のようになります。

<%= form_for :user, @user, :url => user_path, :html => { :multipart => true } do |form| %> 
    <%= form.file_field :avatar %> 
<% end %> 

だから、多分あなたはm.file_fieldを試してみてくださいし、同様に:html => { :multipart => true }が含まれていますか?個人的にはAttachment-Fuが好きですが。

+0

が、この程度でありますsimple_formは標準形式ではありません –

6

を行うことができます。

=simple_form_for @user, :html => {:multipart => true } do |f| 
    =f.file_field :image 
関連する問題