2010-04-23 34 views
1

我已經安裝了Paperclip插件來嘗試上傳我的kase模型的頭像。出於某種原因,選擇文件按鈕顯示,我可以選擇一個文件 - 但是當我點擊更新kase時 - 它將我帶到顯示頁面,但是使用missing.png而不是所選圖像。讓回形針在Rails中工作

kase.rb

class Kase < ActiveRecord::Base 
def self.all_latest 
find(:all, :order => 'created_at DESC', :limit => 5) 
end 
def self.search(search, page) 
paginate :per_page => 5, :page => page, 
:conditions => ['name like ?', "%#{search}%"], 
:order => 'name' 
end 
# Paperclip 
has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" } 
end 

kases_controller.rb

# GET /kases/new 
# GET /kases/new.xml 
def new 
@kase = Kase.new 

respond_to do |format| 
    format.html # new.html.erb 
    format.xml { render :xml => @kase } 
end 
end 

new.html.erb

<% content_for :header do -%> 

例 <%端 - % >

<% form_for(@kase) do |f| %> 
<%= f.error_messages %> 

<ul id="kases_new"> 

<li> <%= f.file_field :avatar %></li> 

<li>Job Ref.<span><%= f.text_field :jobno %></span></li> 

<li>Case Subject<span><%= f.text_field :casesubject %></span></li> 

<li>Transport<span><%= f.text_field :transport %></span></li> 

<li>Goods<span><%= f.text_field :goods %></span></li> 

<li>Date Instructed<span><%= f.date_select :dateinstructed %></span></li> 

<li>Case Status<span><%= f.select "kase_status", ['Active', 'On Hold', 'Archived'] %>  </span></li> 

<li>Client Company Name<span><%= f.text_field :clientcompanyname %></span></li> 

<li>Client Company Address<span><%= f.text_field :clientcompanyaddress %></span></li> 

<li>Client Company Fax<span><%= f.text_field :clientcompanyfax %></span></li> 

<li>Case Handler Name<span><%= f.text_field :casehandlername %></span></li> 

<li>Case Handler Tel<span><%= f.text_field :casehandlertel %></span></li> 

<li>Case Handler Email<span><%= f.text_field :casehandleremail %></span></li> 

<li>Claimant Name<span><%= f.text_field :claimantname %></span></li> 

<li>Claimant Address<span><%= f.text_field :claimantaddress %></span></li> 

<li>Claimant Contact<span><%= f.text_field :claimantcontact %></span></li> 

<li>Claimant Tel<span><%= f.text_field :claimanttel %></span></li> 

<li>Claimant Mob<span><%= f.text_field :claimantmob %></span></li> 

<li>Claimant Email<span><%= f.text_field :claimantemail %></span></li> 

<li>Claimant URL<span><%= f.text_field :claimanturl %></span></li> 

<li>Comments<span><%= f.text_field :comments %></span></li> 

</ul> 

<div class="js_option"> 
<%= link_to_function "Show financial options.", 
"Element.show('finance_showhide');" 
%> 
</div> 

<div id="finance_showhide" style="display:none"> 

<ul id="kases_new_finance"> 

<li>Invoice Number<span><%= f.text_field :invoicenumber %></span></li> 
<li>Net Amount<span><%= f.text_field :netamount %></span></li> 
<li>VAT<span><%= f.text_field :vat %></span></li> 
<li>Gross Amount<span><%= f.text_field :grossamount %></span></li> 
<li>Date Closed<span><%= f.date_select :dateclosed %></span></li> 
<li>Date Paid<span><%= f.date_select :datepaid %></span></li> 

</ul> 

<div class="js_option"> 
<%= link_to_function "I'm confused! Hide financial options.", 
"Element.hide('finance_showhide');" 
%> 
</div> 

</div> 

<p> 
<%= f.submit "Create" %> 
</p> 
<% end %> 

<%= link_to 'Back', kases_path %> 

我試圖把

  • <%= f.file_field:頭像%>
  • 在同一個頁面上它自己的形式,但這並沒有有所作爲。

    回答

    5

    編輯: 在Rails 3.1 :html => { :multipart => true }會的形式呈現自動一旦有一個在你的形式file_field

    代替

    <% form_for(@kase) do |f| %> 
    

    使用

    <% form_for (@kase), :html => { :multipart => true } do |f| %> 
    

    內容類型 「多部分/格式數據」 應被用於提交該 包含文件的形式。

    +0

    我已經添加了,在Kases視圖中的new.html.erb但我沒有看到選擇框。我沒有得到任何錯誤。 http://pastie.org/931417 < - my new.html.erb code – dannymcc 2010-04-23 12:50:16

    +0

    嗯,我說,不是「

    」put「<%form_for(@ kase),:html => {:multipart => true} do | f |%>「不要在表單中添加它!請參閱:http://gist.github.com/377321 – amrnt 2010-04-23 23:57:50

    +0

    另外,您的代碼中有錯誤!您的代碼中的<%content_for:sidebar do - %>必須包含<%form_for ...至<% end %>表單中的所有表單! – amrnt 2010-04-23 23:59:53