ruby on rails
文章平均质量分 64
微信-yangfansky
专注 ruby on rails
展开
-
[ruby on rails]PostgresSQL分区表、继承表、触发器trigger在rails中的应用
PostgresSQL 分区是把逻辑上的一个大表分割成物理上的几块。就是一个主表,会有很多的子表继承主表,字段和主表一样。一般都是建立一个主表,里面是空,然后每个分区都去继承它。分区不仅能带来性能的提升,还能带来管理和维护上的方便。在 PG 里面无论何时,都应保证主表里面是空的。原创 2023-02-21 23:57:36 · 448 阅读 · 0 评论 -
[ruby on rails]MD5、SHA1、SHA256、Base64、aes-128-cbc、aes-256-ecb
1、校验值的长度不同,MD5校验位的长度是16个字节(128位);SHA1是20个字节(160位);SHA256是32个字节(256位)。在安全性方面,SHA256的安全性最高,然后是SHA1,最后是MD5。虽然SHA256的安全性比较高,但是耗时要比其他两种多很多。2、运行速度不同,SHA256的运行速度最慢,然后是SHA1,最后是MD5。都可以实现对任何长度对象加密,都不能防止碰撞;都是密码散列函数,加密不可逆;原创 2023-02-12 12:42:42 · 662 阅读 · 0 评论 -
[ruby on rails] thread_mattr_accessor
【代码】[ruby on rails] thread_mattr_accessor。原创 2022-11-21 15:49:57 · 135 阅读 · 0 评论 -
[ruby on rails] pg触发器trigger的使用
【代码】[ruby on rails] pg触发器trigger的使用。原创 2022-11-20 17:06:49 · 321 阅读 · 0 评论 -
[ruby on rails] Rails 6 使用 AndminLTE
【代码】[ruby on rails] Rails 6 使用 AndminLTE。原创 2022-09-01 00:26:07 · 485 阅读 · 0 评论 -
[ruby on rails]乐观锁和悲观锁
锁,分为悲观锁(Pessimistic)和乐观锁(Optimistic).对比的话,可以笼统的理解悲观锁是数据库层面,而乐观锁是应用层面。悲观锁(Pessimistic)特性强烈的独占和排他。它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。实现往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。.原创 2022-04-15 23:21:51 · 938 阅读 · 0 评论 -
[ruby on rails] preload、includes、eager_load、joins
1.当查询不使用where的时候a.preload和includes查询方式一样都会生成两条sql语句b.eager_load和joins都是一条sql语句,但eager_load为left outer join连接方式,joins则是inner joins连接方式。2.当使用where的时候(注意:查询条件为被关联数据表,例:主表users,被关联表posts)a。where条件三种写法a1.使用hash,where(“posts.title”=>“nihao”)a2.使用替换查询,wh原创 2022-04-13 23:32:32 · 426 阅读 · 0 评论 -
[ruby on rails] rails的回调
回调方法createcreate!destroydestroy!destroy_alldestroy_bysavesave!save(validate: false)toggle!touchupdate_attributeupdateupdate!valid?跳过回调decrement!decrement_counterdeletedelete_alldelete_byincrement!increment_counterinsertinsert!i原创 2022-03-15 12:22:08 · 630 阅读 · 0 评论 -
[ruby on rails] scope和class method区别
最主要区别在有条件判断时候,返回值类型不一样,会影响后续跟链式方法scope返回的总是ActiveRecord::Relation,后面可以直接跟链式方法。类方法在有条件判断为false时返回的是nil,后面跟链式方法会报错NoMethodError1. 不传参数scope 返回ActiveRecord::Relationclass Post < ApplicationRecord belongs_to :user scope :active, -> { where(sta原创 2022-03-04 11:50:22 · 292 阅读 · 0 评论 -
[ruby on rails]Net::HTTP使用
一,二不支持请求头设置(header取ruby默认值),只能用于基本的请求,不支持持久连接,如果您执行许多HTTP请求,则不推荐它们;三,四可以设置请求头;NET::HTTP不能处理重定向和404 ;不支持会话保持一、 基本GET请求require 'net/http'uri = URI('http://httpbin.org/get')res = Net::HTTP.get_response(uri)res.code => '200'res.body => body s..转载 2022-01-10 10:55:48 · 337 阅读 · 0 评论 -
[ruby on rails] Asset precompile
Assets Pipeline 主要功能 & 特性1. 合并、压缩、解析 css, js 文件。主要通过 Sprockets 完成合并:将多个 js 或 css 文件压缩打包成单一文件,減少 http request 的大小与数量。压缩:可以去除空格、注释等。解析:你可直接使用 SCSS 和 CoffeeScript, 它们会被解析成 css 和 js.2. 不使用Assets Pipelinerails new appname --skip-sprocketsAssets 路径原创 2021-12-27 17:45:24 · 685 阅读 · 0 评论 -
【ruby on rails】ab、siege、wrk压力测试
概念1. 吞吐率(Requests per second)概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。计算公式:总请求数 / 处理完成这些请求数所花费的时间,即Request per second = Complete requests / Time taken for tests2. 并发连接数(The number of concurrent connections)概念原创 2021-11-24 09:19:17 · 140 阅读 · 0 评论 -
[js]输入框数字三位加逗号,数字金额变汉字金额
$('#property_price').keyup(function () { var a = $(this).val(); $(".price_chinese").text(convertToChinese(a.replace(/,/g, ""))) var b = TripartiteMethod(a); $(this).val(b); })// 三位加,号function TripartiteMethod(num) { var type = tr..原创 2021-11-18 09:53:26 · 262 阅读 · 0 评论 -
[ruby on rails]适配屏幕大小,加载不同页面或css
1. 加载不同页面屏幕尺寸大于600加载index2屏幕尺寸小于600加载index1 $(function() { //判断屏幕宽度 var winWide = window.screen.width; //获取当前屏幕分辨率 alert(winWide); var wideScreen = false; if (winWide <=600) { //600及以下分辨率 window.l原创 2021-09-05 04:37:05 · 273 阅读 · 0 评论 -
[ruby on rails]JWT, JSON Web Token使用
1. Cookie, Session, JWT对比2. JWT构成3.在Rails中使用 jwt引入jwtgem 'jwt'原理: 把用户名密码传到tokens#create,换取token,token的指里边带有user_id,请求API时传token去解析token获得user_id,然后获得用户操作相应权限。编写公共类JsonWebToken# lib/json_web_token.rbclass JsonWebToken SECRET_KEY = Rails.appli原创 2021-07-05 15:58:13 · 223 阅读 · 0 评论 -
[ruby on rails] fetch vs dig
Fetch取不到值時,會以預設值取代,但沒設定預設值會出現 ErrorHash / Array 皆有實作 #fetchArray#fetcha = [ 11, 22, 33, 44 ]a.fetch(1) #=> 22a.fetch(-1) #=> 44a.fetch(4, 'cat') #=> "cat"a.fetch(4) { |i| i*i } #=> 16a.fetch(5)原创 2021-02-08 10:37:37 · 144 阅读 · 0 评论 -
[ruby]class、module、include、prepend、extend、 require、load、gem
1. class定义实例方法时,与module想比,一般定义calss就行,有时需要区分名称的时候可以用module的命名空间功能2. module定义只有类方法的数据类型时,倾向使用模块而不是类。只有当需要实例化时才使用类# 差class SomeClass def self.some_method # 省略主体 end def self.some_other_method # 省略主体 endend# 好module SomeModule原创 2021-02-05 13:10:25 · 231 阅读 · 1 评论 -
[ruby on rails] 上传文件到七牛云
gem 'qiniu'新建config/initializers/qiniu_sdk.rbrequire 'qiniu'Qiniu.establish_connection! access_key: '<YOUR_APP_ACCESS_KEY>', secret_key: '<YOUR_APP_SECRET_KEY>'新建 app/helpers/qi_niu_helper.rbmodule QiNiuH原创 2021-02-04 18:01:23 · 161 阅读 · 0 评论 -
[ruby on rails]加载yml文件
yml文件 config/abc.ymlwahaha: a: 'b'development: c: 'd'比较老的方式YAML.load_file,这可以加载任何地方的yml文件,只要写正确路径 set = YAML.load_file("#{Rails.root}/config/abc.yml") # =>{ "wahaha" => { "a" => "b" }, "development" => { .原创 2021-01-29 13:24:16 · 301 阅读 · 0 评论 -
[ruby on rails] 同时链接mysql, oracle数据库, sql_server数据库
1. 链接mysql数据库读数据建个mysql.rb文件,models下也可以,app下新建个文件夹放进去也行module Mysql class Rffc < ActiveRecord::Base self.abstract_class = true establish_connection :qxj_mysql self.table_name = "sevp_chn_wefc_rffc" endend调用# 项目里要读取sevp_chn_wefc原创 2021-01-08 11:46:33 · 215 阅读 · 1 评论 -
[ruby on rails]一些最佳实践记录(Persistence、enum、delegate、store)
record attribute 判断<% if @user.login.blank? %># refactor 只要是模型属性都自带?方法判断<% unless @user.login? %>原创 2020-12-21 09:25:08 · 118 阅读 · 0 评论 -
[ruby on rails]计算中英文混合字符串长度
中文,日文占2个字符,英文占1个字符,混合在一起时候计算长度:rubystring.encode("gbk").force_encoding("binary").force_encoding("gbk").encode("utf-8")# 简写string.encode('gbk').b.force_encoding("gbk").encode("utf-8")JS// 获取字符串长度function getLength(str){ var strLength = 0; // 记录str的原创 2020-12-16 12:42:19 · 202 阅读 · 0 评论 -
[ruby on rails]自动加载路径autoload_path
查看现在的自动加载路径rails 的自动加载路径是一组路径字符串数组# command line rails r 'puts ActiveSupport::Dependencies.autoload_paths' # rails r == rails runner# or rails console puts ActiveSupport::Dependencies.autoload_paths为什么要添加自动加载路径不加载的话,下面这个module就调用不了# lib/ship.原创 2020-12-09 01:06:09 · 240 阅读 · 0 评论 -
[ruby on rails]自关联加载树形数据
html<div id="test12"></div><style> .layui-tree-btnGroup { visibility: visible; } .layui-tree-btnGroup .layui-icon { padding: 0 10px; cursor: pointer; transform: scale(1.2); } .layui-tree-set { margin: 20p原创 2020-12-08 22:05:56 · 122 阅读 · 0 评论 -
[ruby on rails]rails安装install
准备(Mac用户先做这些工作,unix用户跳过)安装系统需要的包# For Mac # 先安装 [Xcode](http://developer.apple.com/xcode/) 开发工具,它将帮你安装好 Unix 环境需要的开发包# 然后安装 [Homebrew](http://brew.sh)$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"安装 R原创 2020-11-24 10:05:48 · 528 阅读 · 0 评论 -
[ruby on rails]mini_magic裁剪缩放图片
def save_photo(photo)img = MiniMagick::Image.open(photo) # 通过路径打开图片w, h = img.width, img.height # 获得图片的宽和高shaved_off = w >= h ? [((w-h)/2).round, 0] : [0, ((h-w)/2).round] # 判断宽高,将长的一部分左右各裁一半img.shave “#{shaved_off[0]}x#{shaved_off[1]}”原创 2020-10-19 23:33:04 · 184 阅读 · 0 评论 -
[ruby on rails]mysql百万千万级表加字段操作
场景某表users已有数据上千万,或者由于有很多text字段存入大量内容,导致表大小达到TB级,我们再直接给该表新加字段时候,很长时间都加不上(实际操作过2个小时加不上一个字段),甚至表被锁死注意:在业务低峰期做,将影响降到最低, 能停机做更好删除索引后再修改表结构,效率将大大提升解决方案:思路1:建一个和该表一样的新表,给新表添加好字段,再将老表数据导入到新表具体操作:# 生成新表create table new_users like users;## 生成删除索引语句SE原创 2020-08-09 17:56:08 · 980 阅读 · 0 评论 -
[ruby on rails]reids报错,MISCONF Redis is configured to save RDB snapshots, but is currently not..
错误:MISCONF Redis is configured to save RDB snapshots, but is currentlynot able to persist on disk. Commands that may modify the data set aredisabled. Please check Redis logs for details about the error.解决方案:关闭报警(管用,但是治标不治本)redis-cli127.0.0.1:63原创 2020-08-08 15:00:29 · 109 阅读 · 0 评论 -
[ruby on rails]同时链接多数据库
database.ymldefault: &default encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> wait_timeout: 60 oracle_development: #名字可自定义,但是不能重复。 <<: *default adapter: oracle_enhanced host: xxx.xxx.xxx.xx username: roo.原创 2020-05-19 14:54:10 · 263 阅读 · 1 评论 -
[ruby on rails]whenever使用
安装gem 'whenever', require: false初始化,生成config/schedule.rb文件$ cd /app$ bundle exec wheneverize .This will create an initial config/schedule.rb file设置任务# config/schedule.rbset :output, 'log/cron.log'set :environment, :development #默认是producti.原创 2020-05-19 13:35:55 · 402 阅读 · 0 评论 -
[Ruby on rails]安装环境遇到的一些问题 bundle报错 bundle exec
bundle报错Can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)解决:主要是Gemfile.lock锁住了bundle版本,因此需要安装该版本bundler,或者删除Gemfile.lock也是一种方法$ cat Gemfile.lock | grep -A 1 "BUNDLED WITH"BUNDLED WITH 1.17.3$ gem install bun.原创 2020-05-11 11:15:59 · 639 阅读 · 1 评论 -
[ruby on rails] excel导入与导出
使用spreadsheet(只支持xls)spreadsheet gemgem 'spreadsheet'首先在 config/initializers/mime_types.rb 中添加Mime::Type.register "text/excel", :xls 1.导出controller中添加def index @systems = System.all ...原创 2020-04-16 10:47:48 · 419 阅读 · 0 评论 -
[ruby on rails]查看报错
定位错误位置和内容liyun@hp:~/workspace/happy_book_rails$ ruby abc.rb/home/liyun/.rbenv/versions/2.2.1/lib/ruby/2.2.0/net/http.rb:879:in `initialize': Connection refused - connect(2) for nil port 80 (Errno:...原创 2020-02-29 11:09:22 · 221 阅读 · 0 评论 -
[ruby on rails]多态关联
什么是多态关联假如有三个模型,分别是 用户, 产品, 图片。图片为用户所有,也为产品所有。我们可以创建两个 picture 的模型,如下rails g modle picture_user user_id:integer name:string url:stringrails g modle picture_product product_id:integer name:string u...转载 2020-03-01 11:56:23 · 295 阅读 · 0 评论 -
[ruby on rails]redis启动,sidekiq使用、启动、无限循环停止
redis 启动homebrew 安装的redis配置文件在 /usr/local/etc/redis.conf守护进程开启redisredis.conf中 daemonize no改成yesredis-server /usr/local/etc/redis.confsidekiq 启动sidekiq 需要在rails项目根目录下启动开发模式启动sidekiq 或者 b...原创 2020-02-26 17:08:57 · 690 阅读 · 0 评论 -
[数据库]数据库sql一些操作
计算 Aggregations数量SELECT COUNT(*) AS event_count FROM events;对应的 Rails 语法是 Event.count最小和最大值SELECT MIN(capacity) as min_capacity FROM events;SELECT MAX(capacity) as max_capacity FROM events;...原创 2020-01-14 09:44:39 · 261 阅读 · 0 评论 -
[ruby on rails]数据库索引
WHERE、ORDER 条件字段最好都要加上数据库索引(Index),例如范例中的 date 字串,如果没有索引的话,会是 O(n) 的效率(这里又叫作 Full Table Scan,需要扫过整个表的意思),数据库越多数据会越慢。如果有索引的话,会是 O(logn),在数据量大的情况差非常多。模糊搜寻 LIKE 查询都会变成 Full Table Scan,没办法用数据库索引,百宝箱教...原创 2020-01-13 17:43:18 · 299 阅读 · 0 评论 -
[ruby on rails]jquery前端替换中文符号
###替换中文标点符号为英文//替换中文标点符号为英文function replace_chinese_characters(obj, type) { var ChineseInterpunction = [ "“", "”", "‘", "’", "。", ",", ";", ":", "?", "!", "……", "—", "~", "(", ")", "《", "》" ]; v...原创 2019-11-14 14:40:12 · 372 阅读 · 0 评论 -
[ruby on rails]利用contenteditable对选中内容加粗
###页面添加加粗按钮和输入框<button type="button" class='button_to_bold'>加粗</button><div class="form-control details_richtext" contenteditable style='min-height:450px; overflow:auto; width: 100%;'...原创 2019-11-13 00:55:43 · 268 阅读 · 0 评论 -
[ruby on rails]一些常用的gems
一些好的gem推荐:https://ruby-china.org/wiki/gems1.图形验证码rucaptcha使用方法:http://docs.qzy.camp/docs/使用gem-rucaptcha2.计算网页浏览量impressionist3.分页pagy或者 kaminari4.富文本编辑器ckeditor...原创 2019-03-26 00:14:39 · 563 阅读 · 0 评论