require "socket" local_ip = UDPSocket.open {|s| s.connect("1.1.1.1", 1);s.addr.last}
清除sidekiq任务
sidekiq清空队列里任务的方式主要有两种,一是使用sidekiq的api,二是直接操作redis 一、使用sidekiq的api清空队列的任务 sidekiq里有提供操作队列的api,首先引入 require’sidekiq/api' 获取所
ruby多层数组排序
例子如下: 用sort_by def order_weight_sort_by(string) string.split(" ").sort_by do |a| sum_a = a.split("").inject(0) { |mem, var| mem += var.to_i } first_number = a[0].to_i [a.size, sum_a, first_number] end.join(" ") end string = “56 65 74 100 99 68 86 980 90” p order_weight_sort_by(string ) 结果是"90 56 65 74 68 86 99 100 980" 上面的方法是先将字符串变成一个由数字字符串组成的数组。然后
rails验证码
rails验证码 1.安装包 gem 'rucaptcha' gem 'dalli' 2.配置路由 (最新版本的不用配置路由) mount RuCaptcha::Engine => "/rucaptcha" 3.controller部分 def create @user = User.new(user_params) if verify_rucaptcha?(@user)&&@user.save ...... 4.view部分 <div class="form-group "> <%= rucaptcha_input_tag( class:'form-control rucaptcha-text') %> <a href="#" class='rucaptcha-image-box'><%= rucaptcha_image_tag(class:'rucaptcha-image', alt: 'Captcha') %></a> </div> 5.实现点击图片刷新验证码 #
参数路由与路由冲突解决与筛选路由
有时候我需要写一个页面能向show edit 那样可以接受参数的路由,弄了好久不知道怎样解决,今天恍然大悟 我们执行 rake routes 就会看到如下 wechat_nodes GET /wechat/nodes(.:format) wechat/nodes#index POST /wechat/nodes(.:format) wechat/nodes#create new_wechat_node GET /wechat/nodes/new(.:format) wechat/nodes#new edit_wechat_node GET /wechat/nodes/:id/edit(.:format) wechat/nodes#edit wechat_node GET /wechat/nodes/:id(.:format) wechat/nodes#show PATCH /wechat/nodes/:id(.:format) wechat/nodes#update PUT /wechat/nodes/:id(.:format) wechat/nodes#update DELETE /wechat/nodes/:id(.:format) wechat/nodes#destroy 这是使用resource
存储过程添加列
存储过程添加列 create procedure add_col( in model_name text, in col_name text, in col_info text, out result text ) begin if not exists( select * from information_schema.COLUMNS where TABLE_NAME = model_name and COLUMN_NAME = col_name) then set @ddl=CONCAT('alter table ', model_name, ' add column ', col_name, col_info); prepare stmt from @ddl; execute stmt; set result = 'success'; else set result = 'exists'; end if; end; set @result = ''; call add_col('dc_employee','senior_1 ','tinyint(1) NULL DEFAULT 0 COMMENT "是否是高级用户,0 不是 1 是
MySQL隔离级别
MySQL隔离级别 隔离级别是针对数据库 ACID 中的I(隔离性)来说的 原子性 一致性 隔离性 持久性 隔离性 通常来说,一个事务所做的修改,在最终提交以前,对其他事务是不可见的,为什么是 “通常来说”,因为这种特性和隔离
mysql慢日志
开启慢日志 在 MySQL 中,慢查询日志默认为OFF状态,通过如下命令进行查看: show variables like "slow_query_log"; 通过如下命令进行设置为 ON 状态: set global slow_query_log = "ON"; 日志存储位置 其中slow_query_log_file属性,表示慢查询日志存储位置,
Ubuntu 安装 mysql 及配置远程访问
安装 sudo apt-get install mysql-server mysql-client 配置远程可连接 你想myuser使用mypassword(密码)从任何主机连接到mysql服务器的话。 mysql>GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%'IDENTIFIED BY &
分析nginx日志
GoAccess的多种展示方式 goaccess有多种数据可视化的方式,分别为: 命令行输出格式化数据 利用access.log生成静态的可视化数据 生成实时可视化数据 注意,如果是编译安装且选择了 –enabl
arch添加rc.local 实现开机自启
现在有需求,想要开机就运行一些东西,方法有两个,一个是桌面级的启动,一个是系统级的启动 桌面级别,就是进入桌面后,自动打开一些软件 系统级别就是再没有进入桌面就运行一些东西。 先谈桌面级的,比如 gnome,
同时连接内网和外网
笔记本可以同时连接无线和有线,如果可以指定哪些ip使用无线,哪些ip地址可以使用有线, 假设无线连接的是内网, 有线连接的是外网,可以设置静态路由,使访问不同的地址使用不同的网络 首先确定 本机 无线和有线 的网
git生成公钥
Git配置多个SSH-Key 当有多个git账号时,比如: a. 一个gitee,用于公司内部的工作开发; b. 一个github,用于自己进行一些开发活动; 解决方法 生成一个公司用的SSH-Key $ ssh-keygen -t rsa -C 'xxxxx@company.com' -f ~/.ssh/gitee_id_rsa 生
制作docSet文档
docSet 文档可用于 zeal dash 软件中。 zeal 在win 下 和 Linux 均有可用版本 dash 则只在 Mac 可用 制作 dcocSet 文档主要分 3 步 镜像文档网站 做镜像网站就是把整个网站爬下来,并且把 css 和 js 图片等静态资源文件转换成本地的路径, 主要使用工具是 wget 以 vue 中
忽略改动
git 库中已经有文件被跟踪,如何忽略本地改动后的跟踪 放入到.gitinore 并没有什么用,还是会显示改动,是否要提交,看着很烦 忽略本地文件,且不会对线上库里的文件造成影响,执行此命令: git update-index --assume-unchanged filename 如果想撤销忽