纸夹上传多个图像,重命名“avatar”

时间:2014-01-31 07:37:18

标签: ruby-on-rails paperclip

我已经为我的ruby on rails项目安装了paperclip。但是我无法上传多张图片。 我有两个不同的字段,我想上传eg logo and picture.

的图片

我可以更改名称“avatar”以指示字段的名称吗?有可能吗?

2 个答案:

答案 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