更新
很确定我的问题是由不允许我attr_accesible: cover
在 issue.rb 模型中仅使用带有 main 的回形针的错误引起的。
我收到此错误:
Issue model missing required attr_accessor for 'cover_file_name'
所以这可能是由于对 mass_assignment 的安全更改引起的某种回形针错误?
原始问题
我有一个带有 Paperclip 3(Gemfile.lock 中的 3.4.2)的新 rails 项目(3.2.13)。我正在尝试通过问题模型中的回形针上传文件。它们保存到文件系统,但不保存到对象或数据库。
我已经尝试了所有尝试保存这些的组合(我认为)。
相关代码:
问题控制器.rb
def create
@issue = Issue.new
@issue.attributes = params[:issue]
respond_to do |format|
if @issue.save
format.html { redirect_to @issue, notice: 'Issue was successfully created.' }
format.json { render json: @issue, status: :created, location: @issue }
else
format.html { render action: "new" }
format.json { render json: @issue.errors, status: :unprocessable_entity }
end
end
end
形式:
<%= form_for @issue, :multipart => true, :method => :post do |f| %>
....
<%= f.file_field :cover %>
模型:
class Issue < ActiveRecord::Base
has_many :pages
attr_accessible :number, :name, :cover
has_attached_file :cover, :styles => { :medium => "300x300>"}, :default_url => "/images/:style/missing.png"
attr_accessor :cover_file_name, :cover_content_type, :cover_file_size, :cover_updated_at
validates_attachment :cover, :presence => true
end
我想我已经浏览了 Stackoverflow 上的所有其他回形针问题建议。ImageMagick 正在运行并且是最新的。保存时我没有收到任何错误,并且文件在文件系统中正确显示。我的调试语句输出显示文件名并说:
/system/issues/covers//original/image_name.jpg?1377891456
[paperclip] Saving attachments.
但也显示 DB 值的空值:
SQL (1.4ms) INSERT INTO `issues` (`cover_image_content_type`, `cover_image_file_name`, `cover_image_file_size`, `cover_image_updated_at`, `created_at`, `name`, `number`, `updated_at`) VALUES (NULL, NULL, NULL, NULL, '2013-08-30 19:49:54', 'Test', 'JPEG 30', '2013-08-30 19:49:54')
想法?建议?TIA。