我已经为我的ruby on rails项目安装了paperclip。但是我无法上传多张图片。
我有两个不同的字段,我想上传eg logo and picture.
我可以更改名称“avatar”以指示字段的名称吗?有可能吗?
答案 0 :(得分:1)
是的,这是可能的。
如果您想使用以下命令将“avatar”更改为“logo”
rails g paperclip modalname logo
其中logo是您的字段名称。
我希望你明白,也许可以解决你的问题。
答案 1 :(得分:0)
听起来你需要一些想法来处理Rails
& Paperclip
:
<强>回形针强>
处理文件附件&amp;将数据发送到您的数据库
- 创建数据库条目:
your_definition_file_name
your_definition_content_type
your_definition_file_size
your_definition_uploaded_at
- 处理名为_your_definition
#app/models/attachment.rb
Class Attachment < ActiveRecord::Base
has_attached_file :your_definition
end
Paperclip基本上就像你的数据库和数据库之间的桥梁。你的文件 - 这意味着你必须保持对象名称一致才能使它工作
<强>代码强>
如果您有两个字段(logo
&amp; picture
),则需要在附件模型中声明它们,传递它们的参数,然后在表格中添加列:
#app/controllers/attachments_controller.rb
def create
@attachment = Attachment.new(attachment_params)
@attachment.save
end
private
def attachment_params
params.require(:attachment).permit(:logo, :picture)
end
#app/models/attachment.rb
Class Attachment < ActiveRecord::Base
has_attached_file :logo
has_attached_file :picture
end
#db/migrate
def change
add_attachment :attachments, :logo
end
attachments
id | logo_file_name | logo_content_type | logo_file_size | logo_uploaded_at | picture_file_name | picture_content_type | picture_file_size | picture_uploaded_at | created_at | updated_at
<强>建议强>
以上代码不是DRY
我建议您在附件模型中使用type
属性,每次上传时都设置类型
通过这种方式,您可以将attachment
称为image
或类似内容,每次上传type
的额外段落:
#app/controllers/attachments_controller.rb
def create
@attachment = Attachment.new(attachment_params)
@attachment.save
end
private
def attachment_params
params.require(:attachment).permit(:image, :type)
end
#app/models/attachment.rb
Class Attachment < ActiveRecord::Base
has_attached_file :image
end
#db/migrate
def change
add_attachment :attachments, :logo
end
attachments
id | image_file_name | image_content_type | image_file_size | image_uploaded_at | type | created_at | updated_at