还是基础过一遍吧。也就一天的事。
*.previous_changes
这应该是第三方查询 12306 的余票系统。
服务号可以向关注的所有用户发送消息。
感觉 rack 有些参数不忽略,没处理好引起的问题。
改成: 多重类别参数,根据前后顺序,只取前面就好了,后面的一律忽略。 production 环境忽略,其它环境报错。
Puma caught this error: Invalid query parameters: expected Hash (got Array) for param `datas' (ActionController::BadRequest)
/usr/local/ruby/lib/ruby/gems/2.5.0/gems/rack-2.0.5/lib/rack/query_parser.rb:112:in `normalize_params'
/usr/local/ruby/lib/ruby/gems/2.5.0/gems/rack-2.0.5/lib/rack/query_parser.rb:67:in `block in parse_nested_query'
/usr/local/ruby/lib/ruby/gems/2.5.0/gems/rack-2.0.5/lib/rack/query_parser.rb:64:in `each'
/usr/local/ruby/lib/ruby/gems/2.5.0/gems/rack-2.0.5/lib/rack/query_parser.rb:64:in `parse_nested_query'
或者可以参考,php 的处理方式:
info.php?datas[]=1&datas[id]=2&datas[]=3
_REQUEST["datas"]
Array
(
[0] => 1
[id] => 2
[1] => 3
)
_GET["datas"]
Array
(
[0] => 1
[id] => 2
[1] => 3
)
Puma caught this error: Invalid query parameters: invalid %-encoding (%9g) (ActionController::BadRequest)
/usr/local/ruby/lib/ruby/gems/2.5.0/gems/rack-2.0.5/lib/rack/query_parser.rb:72:in `rescue in parse_nested_query'
/usr/local/ruby/lib/ruby/gems/2.5.0/gems/rack-2.0.5/lib/rack/query_parser.rb:60:in `parse_nested_query'
/usr/local/ruby/lib/ruby/gems/2.5.0/gems/rack-2.0.5/lib/rack/request.rb:468:in `parse_query'
/usr/local/ruby/lib/ruby/gems/2.5.0/gems/rack-2.0.5/lib/rack/request.rb:319:in `GET'
找到位置,调试就好了。程序要重启。
提一个 pull request 就好了,应该是解析出问题的。
unescape
改成 URI.unescape
就好了。
https://github.com/rack/rack/pull/1292/files
本地测试,正常了。
multi domain
/rails/info/routes
看一下 comment_reports_path
有没有这个,需要加@comment
参数的
ruby 万物皆对象,常量是最专一的。
我是 独立一张配置表,启动一次性读完丢入 redis
补上,class ApplicationRecord < ActiveRecord::Base
代码
class ApplicationRecord < ActiveRecord::Base
after_save :trace_log
after_destroy :trace_log
def trace_log
if @_trigger_update_callback
after_on = 'update'
elsif @destroyed
after_on = 'destroy'
else
after_on = 'create'
end
puts "#{self.class.name}:#{after_on}"
end
end
因为试过了才得出的结论, 非 ssd,插入时间超过 30 分钟以上了,后面我就直接中断退出了。
psql (9.6.9)
Type "help" for help.
postgres=# insert into topics select generate_series(2,100000000),2,1,1;
参考的是这篇帖子:1 亿条数据中 PostgreSQL 性能/
但是自己的测试结果并没有这么快,所以我想是不是从 postgresql 的 C 接口直接插入是否会更快,消耗更少。
因为第一次使用 pg,不知道该引用那个头文件更合适,不过已经把各种都测过了
最后还是参考了,官方文档,代码很简单就不贴了
https://www.postgresql.org/docs/10/static/libpq-example.html
这种方法文档直接搜搜不到,看来只能从源码入手了 NumericWithFormat http://api.rubyonrails.org https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/numeric/conversions.rb
不是有个故事吗,砍柴的跟放羊的聊了一天,很开心!!
放羊的一天过去了,羊吃饱了。
砍柴的一天过去了,什么也没干嘛。
rubymoney,也考虑用过,最后花了点时间,给 number_to_currency 加了一层来处理。
本着能不用 gem 尽量不用的原则。各项配置能入库一律入库。
currencies 和 number_to_currency 的各项参数,每一种货币的配置写入数据库。
增加了一个 cents 参数:
1 单位的货币 = 多少 cents,
积分的话:1 unit = 1cents
人民币:1 unit = 100 cents
最后配合:precision 参数,基本没差别了
def money(credit, currency)
number_to_currency(
credit*1.0/currency.cents, unit: currency.unit,
delimiter: currency.delimiter, separator: currency.separator, precision: currency.precision,
format: currency.format,
)
end
# or
def money(credit, currency)
number_to_currency( credit*1.0/currency.cents, currency.attributes )
end
这个好像只能在 views 使用,controllers 不能使用,需要在 notice 等提示中使用。
Topic.where(user_id: [current_user.id , 关注的用户ids])
然后与主信息流合并ids
就是因为不想分 3 次
金三银四,刚好:十月怀胎。
续航是硬伤
希望点图片后,能支持图片预览切换
@huacnlee 有个小 bug,未登陆情况下右边侧栏有上传头像的功能,如下图:
:plus1: