instance_methods 这个很妙啊,我完全想多了
本来也就是好玩,整天写的都是公司用的业务代码,很 KUSO,偶尔也玩玩。
实现不是难在祖先连关系上,是 Proc 中的众多 def ... end 怎么一个个拿出来加工,目前是转成字符串,做一些文字处理取出来。。
纯兴趣,我感觉要是 block 里面的东西能有个比较好的解析方法,能实现好多有趣的东西
这种写法不行哦,这个方法返回 false 了,然而不影响 save
class Aaa
before_save :check_num
def check_num
errors.add(:id, '不能保存就对了')
end
end
Aaa.new.save
=> true
relation.rb
class Relation
delegate :to_xml, :to_yaml, :length, :collect, :map, :each, :all?, :include?, :to_ary, :join, to: :to_a
def initialize options = {}
raise 'class is not initialize' if options[:model].blank?
@class_name = options[:model]
@where = options[:where] || []
@limit = options[:limit] || []
@order = options[:order] || []
@page = options[:page] || []
@per_page = []
@records = []
end
def inspect
to_a
"#<#{self.class}: records: #{self.instance_variable_get(:@records)} attrs: #{self.instance_values}>"
end
%w/where limit order page per_page/.each do |m|
define_method m do |args=nil|
self.instance_variable_get("@#{m}".to_sym) << args if args.present?
self
end
end
def to_a
load_records
@records
end
def load_records
#查询集中在这里
@records = ['a', 'b', 'c']
end
end
cat.rb
class Cat
delegate :select, :group, :order, :reorder, :limit, :joins, :where, :preload, :eager_load, :includes, :from, :lock, :readonly, :having, :create_with, to: :scoped
def scoped
@model ||= self.class.const_set 'Relation', Class.new(Relation)
@model.new(model: self.class)
end
end
subcat.rb
class SubCat < Cat
end
c = SubCat.new
#<SubCat:0x007fe078c21658>
c.where.class
SubCat::Relation
c.where('1=1').order('test asc').limit(1)
#<SubCat::Relation: records: ["a", "b", "c"] attrs: {"class_name"=>SubCat, "where"=>["1=1"], "limit"=>[1], "order"=>["test asc"], "page"=>[], "per_page"=>[], "records"=>["a", "b", "c"]}>
c.where('1=1').order('test asc').limit(1).each{|c| p c }
"a"
"b"
"c"
["a", "b", "c"]
能用 markdown?
像这种我一般复制黏贴到控制台去处理
一直用的 gem 'enumerize' 原来 rails 自己就带了这个功能了,刚知道
多谢,涨知识了
我想问下 generated_association_methods 这个方法返回的是什么?我 puts 了一下返回的还是 model 啊,方法是怎么绑到 GeneratedAssociationMethods 这个变量上的
一直被控制台输出骗了,原来我理解的没错哈哈。。
原来亮点就在于 def inspect to_a.inspect end 我感觉我离真相越来越近了
你的意思是 limit(10) 的时候没有去数据库取数据吗?
我把 mysql 服务关了,limit(10) 会报错的啊
hhkb pro2 用过让你不想用机械键盘
多谢!
我想模仿 AR 的那种可以链式使用,而且是惰性的,调用的时候才去查询的思路,写一些东西,比如吧 solr 当做数据库,或者跨项目查询之类的,但是想不出怎么才能实现
主要是客户端是纯 h5 + js,里面有个分享功能,假如把链接直接暴露在外面,没多久就给别人爬光了,有没有 js 和 ruby 之间能互相正反解得加密方式
https://github.com/ngty/sourcify 我倒是找到一个 gem
#10 楼 @__main__ 哥,我这边有一些内容用了这个正则之后得花好长时间才能出来,比如说这个
"
\r\n标段信息\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t<!-- \t \t \t -->\r\n\t\t\r\n\t\r\n标段编号 | 标段名称 | 采购方式 | 预算金额 (元) | 投标供应商名称 | 排名 | 评分 |
1 | 原长沙铬盐厂止水帷幕二期项目工程地质勘查 | 竞争性谈判 | 911093.93 | 湖南核工业岩土工程勘察设计研究院,, | 1,2,3 | ,, |
长沙市铬污染物治理有限公司原长沙铬盐厂铬污染土壤修复项目前期工程地下水污染防治加固工程(止水帷幕二期)工程地质勘察结果公告
\r\n\r\n长沙市铬污染物治理有限公司的原长沙铬盐厂铬污染土壤修复项目前期工程地下水污染防治加固工程(止水帷幕二期)工程地质勘察竞争性谈判采购项目于束,现将成交结果公告如下。
\r\n\r\n\r\n\r\n
一、项目名称
\r\n\r\n\r\n\r\n
采购项目名称:长沙市铬污染物治理有限公司原长沙铬盐厂铬污染土壤修复项目前期工程地下水污染防治加固工程(止水帷幕二期)工程地质勘察
\r\n\r\n预算金额 (元):911093.93
\r\n\r\n二、项目编号
\r\n\r\n\r\n\r\n
政府采购编号: CSCG-201601140001
\r\n\r\n委托代理编号:HNZT-2016ZF017
\r\n<!--招标公告日期:2016-01-18 12:22:03\" />
投标截止日期:2016-01-26 14:30:10\" />
开标日期: 2016-01-26 14:30:10\" readOnly/>
中标日期: 2016-01-31 19:31:52\" readOnly/>
-->\r\n\r\n三、邀请供应商的情况、谈判情况、成交供应商名称、地址和成交金额
\r\n\r\n(一)、邀请供应商的情况
\r\n\r\n1、供应商产生方式:公告邀请
\r\n\r\n2、采取采购人、评审专家推荐方式的推荐意见
\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n采购人推荐意见 | 评审专家推荐意见 | ||
---|---|---|---|
供应商名称 | / | 供应商名称 | / |
推荐意见 | / | 推荐意见 | / |
(二)、谈判情况
\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n序号 | 供应商名称 | 最终报价 | 评审结果 |
---|---|---|---|
1 | 湖南核工业岩土工程勘察设计研究院 | 优惠率 42%(880724.12 元) | 第一名 |
2 | 核工业长沙工程勘察院 | 优惠率 41.5%(888316.57 元) | |
3 | 湖南中核建设工程公司 | 优惠率 41%(895909.02 元) |
(三)、成交供应商名称、地址和成交金额
\r\n\r\n标段 1 中标,标段名称:原长沙铬盐厂止水帷幕二期项目工程地质勘查
\r\n\r\n成交供应商名称:湖南核工业岩土工程勘察设计研究院
\r\n\r\n地址:长沙市
\r\n\r\n成交金额 (元):880724.12
\r\n\r\n备注:无
\r\n\r\n四、谈判小组成员名单
\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n序号 | 评审小组职务 | 姓名 | 产生方式 | 参与过程 | 备注 |
---|---|---|---|---|---|
1 | 主任评委 | 钟共清 | 随机抽取 | 全过程 | |
2 | 一般评委 | 江西根 | 随机抽取 | 全过程 | |
3 | 业主评委 | 赵欢 | 业主指定 | 全过程 |
注:产生方式注明是随机抽取或自行选定;参与过程注明是确定供应商、谈判或全过程。
\r\n\r\n五、公告期限:
\r\n\r\n\r\n\r\n
六、参与采购活动的供应商认为成交结果使自己权益受到损害的,可以在知道或者应知其权益受到损害之日起 7 个工作日内以书面形式向采购人或采购代理机构提出质疑。
\r\n\r\n七、采购人和采购代理机构名称、联系人和联系方式:
\r\n\r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n
采购人名称: | 长沙市铬污染物治理有限公司 | 采购代理机构名称: | 湖南中投项目管理有限公司 |
电话: | 89711761 | 电话: | 0731-82255989 |
地址: | 长沙市岳麓区银杉路 559 号岳银欣苑 6 栋 1404 室 | 地址: | 长沙市雨花区万家丽中路一段 469 号华雅财富中心 906 室 |
联系人: | 谭晶 | 联系人: | 罗芳 |
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n"
有什么优化的方案吗,我只要 src 后面的和 href 后面的不被替换可以吗
#1 楼 @colorfulberry Cannot read file 报错