Ruby-on-rails 使用回形针通过 Activeadmin Rails 上传文件

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/7078107/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-03 01:46:15  来源:igfitidea点击:

File upload with Activeadmin Rails using paperclip

ruby-on-railsrubyactiveadmin

提问by Sebastien

I use Active admin as my rails application backend. I want to make a file upload. How can I accomplish this functionality?

我使用 Active admin 作为我的 rails 应用程序后端。我想做一个文件上传。我怎样才能完成这个功能?

回答by Sebastien

I found a way to use Paperclip with Active Admin.

我找到了一种通过 Active Admin 使用 Paperclip 的方法。

I added this code in my model "Event" :

我在模型“事件”中添加了此代码:

has_attached_file :map, :styles => { :medium => "238x238>", 
                                   :thumb => "100x100>"
                                 }

And i did this for my admin model :

我为我的管理模型做了这个:

ActiveAdmin.register Event do
 form :html => { :enctype => "multipart/form-data" } do |f|
   f.inputs "Details" do
    f.input :continent
    f.input :event_type
    f.input :name
    f.input :title
    f.input :content
    f.input :date_start, :as => :date
    f.input :date_end, :as => :date
    f.input :place
    f.input :map, :as => :file
    f.input :image, :as => :file, :hint => f.template.image_tag(f.object.image.url(:medium))
    f.input :userfull_info
    f.input :price
    f.input :phone, :as => :phone
    f.input :website, :as => :url
  end
  f.buttons
 end
end

To use it on the index page, you have to use :

要在索引页面上使用它,您必须使用:

column "Image" do |event|
    link_to(image_tag(event.image.url(:thumb), :height => '100'), admin_event_path(event))
  end
  default_actions
end

回答by kokemomuke

Got it worked for Rails 4.1 and Paperclip 4.1:

让它适用于 Rails 4.1 和 Paperclip 4.1:

Model

模型

class Hotel < ActiveRecord::Base

has_attached_file :thumbnail, :styles => { :medium =>     "300x300#", :thumb => "200x200#" }
validates_attachment :thumbnail, content_type: { content_type:     ["image/jpg", "image/jpeg", "image/png"] }

end

Admin Model

管理模式

ActiveAdmin.register Hotel do

permit_params :name, :description, :price, :thumbnail

form do |f|
  f.inputs "Project Details" do
    f.input :name
    f.input :thumbnail, :required => false, :as => :file
    # Will preview the image when the object is edited
  end
  f.actions
 end

show do |ad|
  attributes_table do
    row :name
    row :thumbnail do
      image_tag(ad.thumbnail.url(:thumb))
    end
    # Will display the image on show object page
  end
 end
end

回答by mmarqueti

I'm using the rails 3.0.1 and the following code

我正在使用 rails 3.0.1 和以下代码

f.input :image, :hint => "current image: #{f.template.image_tag(f.object.image.url(:thumb))}" 

return a string. After search a solution, i found it.

返回一个字符串。搜索解决方案后,我找到了。

f.input :image, :hint => f.template.image_tag(f.object.image.url(:thumb))

Send direct the object, will return a image to the html

直接发送对象,会返回一个图片给html

回答by Amal Kumar S

In latest Version of ActiveAdmin & Rails 4 for displaying the file field we need to use the below code

在最新版本的 ActiveAdmin & Rails 4 中,我们需要使用以下代码来显示文件字段

Previously we used f.input :uploads, :as => :file

以前我们使用 f.input :uploads, :as => :file

ActiveAdmin.register Project do
  permit_params :name, :uploads


  form multipart: true do |f|
    f.inputs "Project Details" do
      f.input :name
      f.input :uploads, required: false
    end
    f.actions
  end

end