2013-08-27 42 views
1

如果我用模型驗證表單,附加的圖像不會被保留。我們使用回形針寶石「paperclip」,「〜> 3.4.0」。我遵循以下步驟。附帶的圖像沒有用回形針保留

步驟: 的表單已像
COMPANY_NAME(強制) 位置, object_type的, object_size(強制)和 附件(強制)字段。

1.填寫字段company_name(必填),location,object_type並附加圖片 2.不填充具有模型驗證的object_size(強制)。 3.點擊提交,顯示模型驗證,但附加的圖像消失。

(注:如果表單是否正確填寫在第一時間圖像被妥善保留,並存儲在S3數據庫)

任何人可以幫助我PLZ。

+0

你能否告訴我們在服務器端代碼? –

+2

has_attached_file:附件,:存儲=>:S3,:s3_credentials => 「#{File.dirname(__ FILE __)} /../../配置/ s3.yml」, :s3_protocol =>的 'http',: path =>'/img-dev/:id.:extension', :url =>':s3_alias_url',::s3_host_alias =>'something', :bucket =>'something' – Sam

回答

3

你只需要在你的表單文件域,其他默認回形針對象屬性做不需要表單域,並通過圖像上的元數據標籤進行設置。

<p> 
    <%= f.label :avatar, "Select Profile Picture*" %><br /> 
    <%= f.file_field :avatar %> 
</p> 

爲了驗證使用該模型中的:

validates :avatar, :attachment_presence => true, 
        :attachment_content_type => { :content_type => [ 'image/png', 'image/jpg', 'image/gif', 'image/jpeg' ] } 
0

你不能指定文件字段中的值,它的安全風險

例子:

<form id="bad_form" action="/my_url"> 
    <input type="file" value="/Users/bob/my_very_secret_file.txt"> 
</form> 
<script> 
    $('#bad_form').submit(); 
</script>