`
peswe
  • 浏览: 15207 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

笔记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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics