rails,ruby,css,js,vue杂记

rails 格式化时间

time.strftime("%Y-%m-%d %H:%M:%S")

rails rescue可以单独使用

  def show
    sys_log = SysLog.find(params[:id])
    render json: { status: '0', data: {log_content: sys_log.log_content}} # .gsub("\n", "\n\n")
  rescue
    render json: { status: '1', error: '查询日志出错', errors: syslog.errors }
  end

rails joins嵌套

.joins(:base_audit_project => [:base_audit_object])

rails 自定义数据库查询方法

在model中:
	scope :select_problem_name, ->(problem_name){where("problem_name like '%#{problem_name}%'")}

然后可以在控制器中:
	problems = BaseAuditProjectProblem.select_problem_name(params[:problem_name])

rails 字符串转常量

d.accessory_type.constantize.find_by(id: d.accessory_id)

d数据库查询到的记录

accessory_type常量字符串

constantize转常量方法

后面的find_by就是常量本身拥有的方法

rails 迁移文件创建外键

    create_table :base_important_policy_contents do |t|
      t.references :base_accessory, index: true # 外键附件表ID
      t.text :content # 内容
      t.timestamps
    end
    # index: true 表示创建索引

rails 中批量删除

BasePrepareInfo.destroy(params[:important_policy_ids])
#  params[:important_policy_ids]是id数组

pg数据库空值处理

COALESCE(bp.audit_problem_amount, 0)

pg行号获取

# partition by是分组条件,order by排序条件
row_number() over(partition by base_audit_object_id order by serve_starttime desc)

pg数据库自定义函数

函数						返回类型			描述
currval(regclass)		bigint			返回最近一次用 nextval 获取的指定序列的数值
nextval(regclass)		bigint			递增序列并返回新值
setval(regclass, bigint)	bigint		设置序列的当前数值
setval(regclass, bigint, boolean)	bigint		设置序列的当前数值以及 is_called 标志

-- 设置序列的当前数值:
 SELECT
	setval(
		'"t_student_Id_seq"' :: regclass,
		100
	);

pg数据库自定义函数

CREATE AGGREGATE group_concat(anyelement)

(

sfunc = array_append, -- 每行的操作函数,将本行append到数组里

stype = anyarray, -- 聚集后返回数组类型

initcond = '{}' -- 初始化空数组

);

pg数据库将查询结果拼接字符串返回

# array_to_string 用来将数组拼接字符串;
# ARRAY_AGG 用来将分组的查询结果存为数组;

select users.*, array_to_string(ARRAY_AGG(roles.name), ',') from users
left join user_roles on user_roles.user_id = users.id
inner join roles on user_roles.role_id = roles.id
group by users.id;

pg 通过命令行安装后给出的启动提示

# 没卵用
/usr/lib/postgresql/10/bin/pg_ctl -D /var/lib/postgresql/10/main -l logfile start

#有用的命令
/etc/init.d/postgresql start

#启动pg数据库自带命令行客户端
sudo su postgres -c psql
#postgres是安装数据库时默认创建的用户,psql是启动客户端命令

pg 根据编号分组后取第一条数据

-- 根据编号分组后取第一条数据
SELECT * FROM 
    (SELECT ROW_NUMBER() OVER (partition BY no ORDER BY no) rowId,* 
    from table) t
WHERE rowId=1

COALESCE((select major_projects_num from base_audit_indicators where year = (select extract(year from now())) and base_audit_unit_id=ap.base_audit_unit_id order by id desc limit 1),0) as major_projects_num,

css 元素出现滚动条

// 元素设置height属性并overflow: auto;
如:
{
	height: 800px;
	overflow: auto;
}

axios 处理并发请求

function getUserAccount(){
  return axios.get('/user/12345');
}
function getUserPermissions(){
  return axios.get('/user/12345/permissions');
}
axios.all([getUserAccount(),getUserPermissions()])
  .then(axios.spread(function(acct,perms){
    //当这两个请求都完成的时候会触发这个函数,两个参数分别代表返回的结果
  }))

js 判断数值类型

// js本身是没有判断数字是整数还是浮点数的方法的

判读数值类型的正则表达式
 "^//d+$" //非负整数(正整数 + 0) 
 "^[0-9]*[1-9][0-9]*$" //正整数 
 "^((-//d+)|(0+))$" //非正整数(负整数 + 0) 
 "^-[0-9]*[1-9][0-9]*$" //负整数 
 "^-?//d+$" //整数 
 "^//d+(//.//d+)?$" //非负浮点数(正浮点数 + 0) 
 "^(([0-9]+//.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*//.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮数 
 "^((-//d+(//.//d+)?)|(0+(//.0+)?))$" //非正浮点数(负浮点数 + 0) 
 "^(-(([0-9]+//.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*//.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数 
 "^(-?//d+)(//.//d+)?$" //浮点数

二进制(blob)数据转化文件下载

# msg为后台返回的二进制数据
 let url = window.URL.createObjectURL(msg) // 表示一个指定的file对象或Blob对象
 let a = document.createElement('a')
 document.body.appendChild(a)
 let fileName = '审计项目清单.xlsx'
 a.href = url
 a.download = fileName // 命名下载名称
 a.click() // 点击触发下载
 window.URL.revokeObjectURL(url) // 下载完成进行释放
 this.$message('导出表格成功')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值