笔记6

1、在模型中动态生成代码的函数module_eval

有时需要在模型中动态的生成一些函数,或需要重复的生成类似的函数,则用module_eval可以在很大程度上的优化代码

例如,在模型中要定义:

link_to_firm_function,link_to_contact_function,link_to_order_function,

用一般的方法,

def link_to_firm_function
..
end

需要重复定义三次,而用module_eval则可简化为一次全部定义:

%w{firm contact order}.each do |obj|
module_eval %{
def link_to_#{obj}_function(p1,p2)
.....
end
}
end

2、oracle中的临时表:dual

3、Oracle中的分页

方法1:select * from (select ROWNUM rn ,t.* from tablename t where ROWNUM<=20) where rn>=11;

方法2:使用分析函数ROW_NUMBER实现分页
select * from (select ROW_NUMBER() OVER (ORDER BY id) rn,t.* from tablename t) where rn between 11 and 20;

4、在Oracle中搜索重复的记录

select id,count(*) from tablename group by id having count(*)>1;

5、列出表格中的所有列

例如数据库中有个表为:tables,其对应的模型为Table

则,列出表中所有的列名:

for column in Table.content_columns
puts column.human_name
end

列出各列所对应的值

t = Table.find(1)
for column in Table.content_columns
puts t.send(column.name)
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值