我正在使用rails的paperclip插件,它运行良好。然而我的问题是,当更新记录时,如果我没有重新选择图片,则会将记录保存为空值。以下是我的代码:
<div class="form-group">
<div class="media">
<%= image_tag program_avatar(b), :id => 'avatar', :class => 'thumbnail media-object pull-left', :height => 100, :width => 100 %>
<div class="media-body padding-top-40">
<%= b.file_field :avatar, :class => 'file-upload' %>
</div>
</div>
</div>
<div class="form-group">
<div class="media">
<%= image_tag program_banner(b), :class => 'thumbnail media-object pull-left', :height => 100, :width => 300 %>
<div class="media-body padding-top-40">
<%= b.file_field :banner, :class => 'file-upload' %>
</div>
</div>
</div>
以及控制器:
respond_to do |format|
if @program.update(program_params)
format.html { redirect_to(program_path(@program), :notice => "Program updated") }
format.js { render :json => @program.json }
else
format.html { render :new, :notice => "Error please try again" }
format.js { render :json => "Error please try again" }
end
end
模型:
书籍模型:
has_one :book_content, :dependent => :destroy
accepts_nested_attributes_for :book_content, :allow_destroy => true
图书内容模型:
has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
has_attached_file :banner, :styles => { :header => "600x150", :setting => "300x100" }, :default_url => "/images/:style/found.jpeg"
belongs_to :book
这是一个嵌套表单,但由于它有多个附件,所以我不能使用reject_if
如何告诉Paperclip如果没有选择文件则保留原始文件?
谢谢
has_attachment
。 - Chris Peters