如何在Rails Active Admin中添加Colorpicker?

gso*_*oni 2 ruby-on-rails activeadmin

我想在其中一个Active Admin表单中实现http://www.eyecon.ro/colorpicker/#about或任何其他颜色选择器.

任何帮助都是适用的.

谢谢,GS

Ale*_*xis 9

因为你想使用一个"原始"库,它会有点复杂,你应该重命名库正在使用的图像的路径,javascripts等...所以我建议你使用另一个颜色选择器使用rails-integration,它会轻松很多,请查看这个例如jails colorpicker for Rails,使用此按照以下步骤操作

首先是你的宝石文件

gem 'jquery-minicolors-rails'
Run Code Online (Sandbox Code Playgroud)

第二步将js的requiere添加到active_admin并加载minicolors()函数

active_admin.js

//= require active_admin/base
//= require jquery
//= require jquery.minicolors
jQuery( function($) {
    $(".colorpicker").minicolors()
});
Run Code Online (Sandbox Code Playgroud)

第三步将css添加到sass活动管理员的顶部

active_admin.css.scss

/*
*= require jquery.minicolors
*/
// SASS variable overrides must be declared before loading up Active Admin's styles.
//
// To view the variables that Active Admin provides, take a look at
// `app/assets/stylesheets/active_admin/mixins/_variables.css.scss` in the
// Active Admin source.
//
// For example, to change the sidebar width:
// $sidebar-width: 242px;

// Active Admin's got SASS!
@import "active_admin/mixins";
@import "active_admin/base";

// Overriding any non-variable SASS must be done after the fact.
// For example, to change the default status-tag color:
//
//   .status_tag { background: #6090DB; }
Run Code Online (Sandbox Code Playgroud)

最后以你的形式出现这样的事情

f.input :name, input_html: { class: 'colorpicker' }
Run Code Online (Sandbox Code Playgroud)

你可以看到我使用类colopicker来识别jquery函数的输入

你可以申请更多的CSS,但这对我来说已经足够了,是最简单的方式,问候!

  • 太好了!小增强:使用`$("input [type ='color']").minicolors()`然后你不需要,`input_html:{class:'colorpicker'}`snippet(如果formtastic会自动定义你的字段为`:color`类型,或者您可以手动执行http://www.rubydoc.info/github/justinfrench/formtastic/Formtastic/Inputs/ColorInput) (2认同)