目前我有一个模型“位置”,其中添加了一个图像上传字段到表单中。当我去的时候,可以说“更新一个现有位置,甚至添加一个新位置,它会正确上传图像并显示它,但不会保存任何输入字段。
如果我删除表单上的上传照片字段并且不需要它,那么所有内容都会更新并正确保存。因此,当图像存在时出现问题,它会保存图像,但不会保存其余字段。
关于为什么会发生这种情况的任何建议?
地点.rb
class Location < ActiveRecord::Base
belongs_to :region
has_many :spots
validates_attachment_size :photo, :less_than => 5.megabytes
validates_attachment_content_type :photo, :content_type => ['image/jpeg', 'image/png']
has_attached_file :photo,
:styles => { :thumb => "150x150#", :medium => "200x200#"},
:path => ":attachment/:id/:style.:extension",
:s3_domain_url => "adsimgstore.s3.amazonaws.com",
:storage => :s3,
:s3_credentials => Rails.root.join("config/s3.yml"),
:bucket => 'adsimgstore',
:s3_permissions => :public_read,
:convert_options => { :all => "-auto-orient" }
attr_accessible :locations, :photo, :photo_file_name, :photo_content_type, :photo_file_size, :photo_updated_at
end
形式
<%= form_for (@location), :html => { :multipart => true } do |f| %>
<% if @location.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@location.errors.count, "error") %> prohibited this location from being saved:</h2>
<ul>
<% @location.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :network_id %><br />
<%= f.text_field :network_id %>
</div>
<div class="field">
<%= f.label :region_id %><br />
<%= f.text_field :region_id %>
</div>
<div class="field">
<%= f.label :spot_duration %><br />
<%= f.text_field :spot_duration %>
</div>
<div class="field">
<%= f.label :frequency %><br />
<%= f.text_field :frequency %>
</div>
<div class="field">
<%= f.label :screen_count %><br />
<%= f.text_field :screen_count %>
</div>
<div class="field">
<%= f.label :ad_size %><br />
<%= f.text_field :ad_size %>
</div>
<div class="field">
<%= f.label :ad_type %><br />
<%= f.text_field :ad_type %>
</div>
<div class="field">
<%= f.label :impressions %><br />
<%= f.text_field :impressions %>
</div>
<div class="field">
<%= f.label :rate_card %><br />
<%= f.text_field :rate_card %>
</div>
<div class="field">
<%= f.file_field :photo %>
</div>
<div class="field">
<td><%= image_tag @location.photo.url(:thumb) %></td>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>