Rails每周闲碎(十): Tools

1. will_paginate

 

   will_paginate 是一个非常简单易用的rails插件,它提供了“分页”的查询功能和一些页面模板。

 

   在查询功能上,这个插件的本质是在rails模型对象的查询方法上增加了一些条件。比如paginate方法可以看成是find方法的基础上增加了:page和:per_page两个参数,来告诉查询页数和每页的记录数量。

 

   组装成的sql语句大概如下:

 

SELECT TOP 50 FROM (SELECT ROW_NUMBER() OVER ( ORDER BY id ) AS row_num) AS t 
WHERE row_num > 1000

#SQL Server版本
#其中的50是:per_page, 1000是由:page计算而得。

 

   而在页面方面,will_paginate也提供了一些模板和view的helper方法,使页面的实现非常简单:

 

 

<%= will_paginate @posts %>

 

2. ActionMailer

 

    ActionMailer 让你通过一个model和view就能建立起email。

 

    需要注意的几点:

 

    a. 在view中的url:用url_for等方法生成url,需要指定host。Mailer的view跟一般的view不同,不是通过请求生成的,所以无法从request中获取host。

 

    b. content_type:我们可以指定邮件的content type,如果没有指定,则其由view的文件名决定。比如signup_notification.text.html.erb说明邮件的content type是“text/html”。

 

    c. smtp server: smtp配置的设定,ActionMailer::Base. smtp_settings。

 

 

 

3. rake task: environment

 

   Rake task是独立于环境而执行的,除非这个task有个前置task是:environment。

 

task :load_data => :environment do
   include DataLoader
   load_data
end 

 

    在上面这个例子中,我们需要include DataLoader这个module(定义在lib目录下),并调用它的load_data方法。如果没有environment这个前置task,那 么include就会失败,因为当load_data task执行时,并没有应用环境,那么就不会知道load path等。

 

 

 

4. jmeter

 

    jmeter可以设置代理,让浏览器的请求都通过jmeter,以此来录制浏览器的request。结合selenium,简直完美。

 

你可能感兴趣的:(sql,编程,浏览器,SQL Server,Rails)