Rails Active Admin插件中添加Attachinary输入的必要步骤是什么?
答案 0 :(得分:1)
从原始问题复制。
第一步:
在'app'文件夹中添加名为'inputs'的新文件夹。
在此文件夹中,创建名为'formtastic_attachinary_input.rb'的文件
并在此文件中添加以下行:
class FormtasticAttachinaryInput
include Formtastic::Inputs::Base
attr_reader :attachinary_options
def to_html
input_wrapping do
label_html <<
template.builder_attachinary_file_field_tag(method, @builder, { html: input_html_options })
end
end
end
第二步:
在'config / initializer'中创建一个名为'active_admin_cloudinary.rb'的文件
并在此文件中添加以下行:
module ActiveAdmin
module Views
module Pages
class Base < Arbre::HTML::Document
alias_method :original_build_head, :build_active_admin_head
def build_active_admin_head
original_build_head
within @head do
text_node cloudinary_js_config
end
end
end
end
end
end
第三步:
在'app / assets / javascript'中创建名为'active_admin.js'的文件
并添加以下行:
//= require active_admin/base
//= require jquery-fileupload/vendor/jquery.ui.widget
//= require jquery-fileupload/jquery.iframe-transport
//= require jquery-fileupload/jquery.fileupload
//= require cloudinary/jquery.cloudinary
//= require attachinary
//= require attachments
第四步: 在'app / assets / javascript'中创建名为'attachments.js.coffee'的文件
并添加以下行:
jQuery ->
$('.attachinary-input').attachinary()
如何使用它?
ActiveAdmin.register Category do
menu priority: 3
menu label: "Sous catégories"
permit_params :name, :photo, :description, :category_type_id, :id, :pos_id
form do |f|
f.inputs "Infos de base" do
f.input :id
f.input :name
f.input :description
f.input :category_type
f.input :pos_id
f.input :photo, as: :formtastic_attachinary ### THERE ####
end
actions
end
filter :name, :as => :string
filter :description
filter :category_type
filter :pos_id
end