在我的生产模式digitalocean的应用程序上,我配置了回形针,但我遇到了这个问题:
I, [2016-04-08T15:17:29.169827 #23709] INFO -- : Completed 500 Internal Server Error in 16ms (ActiveRecord: 0.6ms)
F, [2016-04-08T15:17:29.171143 #23709] FATAL -- :
Paperclip::Error (CommercialActivity model missing required attr_accessor for 'avatar_file_name'):
app/controllers/commercial_activities_controller.rb:50:in `create'commercial_activity.rb
class CommercialActivity < ActiveRecord::Base
...
has_attached_file :avatar, styles: { medium: "300x300>", thumb: "100x100>" }, default_url: "/images/:style/missing.png"
validates_attachment :avatar, content_type: { content_type: ["image/jpeg", "image/gif", "image/png"] }
...
endGemfile
gem "paperclip", git: "git://github.com/thoughtbot/paperclip.git"commercial_activities_controller.rb
class CommercialActivitiesController < ApplicationController
...
def create
...
@commercial_activity = current_tradesman.commercial_activities.build(commercial_activity_params)
...
respond_to do |format|
if @commercial_activity.save
format.html { redirect_to url_for(controller: :tradesmen, action: :index), notice: 'Commercial activity was successfully created.' }
format.json { render :show, status: :created, location: @commercial_activity }
else
format.html { redirect_to url_for(controller: :tradesmen, action: :index), notice: 'Commercial activity was not created.' }
format.json { render json: @commercial_activity.errors, status: :unprocessable_entity }
end
def commercial_activity_params
params.require(:commercial_activity).permit(:avatar, ...)
end
endconfig\environments\production.rb
...
Paperclip.options[:command_path] = "/usr/bin/"
...db\migrate\20160408154436_add_attachment_avatar_to_commercial_activities.rb
class AddAttachmentAvatarToCommercialActivities < ActiveRecord::Migration
def self.up
change_table :commercial_activities do |t|
t.attachment :avatar
end
end
def self.down
remove_attachment :commercial_activities, :avatar
end
end我该如何解决这个问题?谢谢
发布于 2016-04-09 03:45:10
您需要在模型中具有avatar_file_name (例如attr_accessor :avatar_file_name)的列或虚拟属性。回形针将在保存前将表单值缓存在此字段中。
发布于 2016-04-09 03:50:04
作为安东尼答案的后续,错误是这样读的,它看起来需要一个attr_accessor。然而,这对我来说似乎很奇怪,因为我从来不需要一个来让我的回形针图像工作。你有没有试过给模型一个attr_accessible
class CommercialActivity < ActiveRecord::Base
...
attr_accessible :avatar
...
end发布于 2016-04-09 06:04:16
那么,您确定您运行了迁移吗?当您使用回形针附件运行迁移时,您应该会得到四个东西:<attachment>_file_name、<attachment>_file_size、<attachment>_content_type和<attachment>_updated_at。看起来你错过了所有这些...
https://stackoverflow.com/questions/36507985
复制相似问题