- 浏览: 199443 次
- 性别:
- 来自: 北京
最新评论
-
ray_linn:
eval的速度也是慢得可以
Rails每周一题(十六): Evaluation in Ruby -
orcl_zhang:
>> Thing.my_class_eval do ...
Rails每周一题(十六): Evaluation in Ruby -
andyhu1007:
robbin 写道何况多进程rails都是每进程hold一个持 ...
线程安全的Rails -
robbin:
ruby本地的lib不是线程安全的,你多线程rails读取本地 ...
线程安全的Rails -
andyhu1007:
刚帮同事trouble shoot了一个问题:def upda ...
ActiveRecord的ORM问题域 Q&A
文章列表
1. Caching multiple javascript into one
javascript_include_tag :all, :cache => true
javascript_include_tag "prototype", "cart", "checkout", :cache => "shop"
2. jQuery
jQuery
is a fast and concise JavaScript Library that sim ...
- 2009-07-11 23:29
- 浏览 1121
- 评论(1)
1. Cucumber
Cucumber is a tool that can execute plain-text documents as automated functional tests. Here is an example:
Feature: Search courses
In order to ensure better utilization of courses
Potential students should be able to search for courses
Scenario: Search b ...
- 2009-07-09 21:23
- 浏览 1050
- 评论(0)
想象一下我们在部署的时候需要做的事情:
1. 不断地登录登出各服务器
2. 执行大量的重复命令
有人说,我们可以脚本化在服务器上运行的一系列命令;最后,我们还希望能自动化到服务器的登录登出。
于是,capistrano
就出现了。
Capistrano通过让rails应用的部署成为一个可重复的简单操作使之更加便捷和可靠。
有兴趣的,来这里get started
。
(鉴于这只是一个工具,此篇于是成为最短的每周一题。越来越懒了...)
在现实世界中,所有程序都会出错。一个优秀的程序可以预期错误的发生,并且优雅地处理它们。
一种错误处理的方法是:使用返回码。举个例子,我们在使用open方法打开文件,文件不存在时就会出错。我们可以使用一个特殊的返回码来标识这个错误。
但这种处理方式的问题是:管理这些错误代码会显得非常复杂。比如,我们调用了open,read并最终调用close方法,每一个方法都会返回不同的错误代码,我们需要在调用的外层次使用复杂难懂的代码来管理和区分这些不同的错误代码。
异常机制很好地解决了上述错误处理方法的问题:异常把错误信息打包进一个类中,在抛出一个异常之后,异常会自动在调用栈中‘上浮’ ...
上次讲到一篇关于web浏览器的cache
,而本篇要讲述的是web服务器端的cache。
Web服务器端的cache通过减少对web应用程序的访问和对数据库的访问来减少服务端的负载以及提升客户端的响应速度。
Rails本身提供了对web服务器端cache的很好支持,当然还有一些更加方便的plugin如cache_fu
。
Cache需要关注的问题有几点:
1. Cache对象
2. 在何时以及如何清理cache
3. Cache的存储规则
4. Cache的存储方式
在来研究这几点之前,首先打开rails的cache。
...
所谓的国际化:就是根据特定的locale信息,提取相应的字符串和其它一些东西(比如时间和货币的格式)等等。
显然,有三个问题需要解决:
1. 如何确定locale。
2. 如何保存这些locale相关的字符串和其它信息。
3. 如何根据locale提取字符串和其它相应的信息。
让我们来看看rails如何处理国际化。(指rails2.2之后)
首先看看第一点,如何确定locale
可以通过几种不同的方法来确定locale。
a. url参数
http://www.example.com?locale=cn
或者 ...
1. load_path, require, load, include
load_path相当于java的class path
require和load相当于java的import,但load和require是有区别的。
1. require不需要指定文件后缀,而load需要。
2. require会track所有已经require的文件,不会对同一个文件require两次。而load每次都会重新load文件。
那么load用在哪里呢?在有些场合load是有用的,比如rails的developmeng环境,每次都需要load最新的文件, ...
本题讲述Rails处理Ajax返回中的javascript的几种方法:
1. html.erb中的javascript代码。
Javascript代码嵌于<script>的tag中。javascript代码会在客户端被执行(执行之后并不保留源码,对于下述几种方法也一样)。
2 ...
1. 数据库的存储过程
数据库的存储过程是为了提升sql语句的复用性和执行效率而出现的一种技术。
它的优点有:
1. 无需像sql语句一样,每次执行都要编译。这带来的是执行效率的提升。
2. 重复使用。写好之后,可以重复调用。
3. 提升应用程序的可移植性。无需改变程序代码,而只需改变存储过程,这为应用程序提高了可移植性。
格式:
Create procedure procedue_name
[@parameter data_type][output]
[wi ...
- 2009-05-10 18:34
- 浏览 1083
- 评论(0)
在上篇和中篇中介绍了对session的攻击和其它一些常见攻击。在下篇中着重介绍注入攻击。
注入是通过向网站内引入恶意代码或者一些恶意参数,使这些有害的代码得以在网站的安全环境中运行的攻击方法。最显著的例子是XSS ...
上篇
中介绍了对session的攻击方法以及应对策略,在此篇继续介绍其它一些对网站的攻击方法以及应对策略。在阅读本文的过程中,你会发现,其实避免很多安全问题并不困难。只是很多时候,我们并没有把安全问题这个概念放 ...
此篇文章总结自:http://guides.rubyonrails.org/security.html
谢谢某同学的提醒。
Web应用存在的安全问题包括账号劫持,绕过访问控制,读取或者修改敏感信息或者显示欺诈内容等。通过security guide系列篇让我们一起来看看应该如何正确使用Rails来克服这些问题。
在上篇中,主要描述对session的攻击,以及应对方法。
首先简单介绍一下session的基本概念和一些普遍攻击方法。
什么是Session
Session是一个保存特定用户信息的哈希,用一个session id来识 ...
1. 浏览器的回退
为了避免数据不一致问题,我想到的只有强制禁用浏览器cache(cache control:no cache, no store)。
2. Why and how the url is encoded:
http://www.blooberry.com/indexdot/html/topics/urlencoding.htm
and so wh ...
- 2009-04-15 21:18
- 浏览 1038
- 评论(0)
1.
alias_method
Makes new_name
a new copy of the
method old_name
. This can be used to retain access to methods that
are overridden.
module Mod
alias_method :orig_exit, :exit # Without alias_method, you have no way to access orig exit.
def exit(code=0)
...
1. $: =》 Rails's load path
2. reload
Reloads the attributes
of this object from
the database. The optional options argument is passed to find
when reloading so you may do e.g.
record.reload(:lock => true) to reload
the same record with an exclusive row lock.
Wh ...
- 2009-04-14 23:37
- 浏览 1108
- 评论(0)