- 浏览: 182936 次
- 性别:
- 来自: 北京
最新评论
-
angjunwen:
^[1-9]\d*|0$ 这个能处理小数吗?
ruby on rails 常用正则表达式 -
hot88zh:
Hooopo 写道为什么这么多踩的呢 呃。。还真是,你不说我都 ...
Ruby如何用Oauth与第三方网站互动 -
Hooopo:
为什么这么多踩的呢
Ruby如何用Oauth与第三方网站互动 -
robbinwork:
顶
改良程序的11技巧 -
rogerer:
请问ROR上传大文件,怎么解决内存占用问题:1. lightt ...
查询rails的API
文章列表
这两天一直在弄 cache,page
cache基本不可用,因为它控制不了权限。action
cache应该是可以执行filter的,不过不得法用的有点异常。最后还是fragment cache比较靠谱,简单好用。不过截止到现在
expire_fragment 还有点不正常,我用的是正则匹配的方式,好像删的不彻底,不过被缓存页面确实变化了。周一在盯着log看看。
两篇关于cache的tutorial:文章1
,文章2
还有这篇
也可以看看
- 2009-10-26 18:18
- 浏览 1012
- 评论(0)
大量地方都会有这样的问题:给大段文字做一个截断当作摘要,但是一定要保证 html markup valid。
最简单的方式是删掉所有的 html 标签然后截断,这样做的结果是产生一陀文字,没有换行,没有任何样式!
方法是:
tr.gsub(/<\/?[^>]*>/, "")
比较好的办法是像这篇文章里说的利用REXML和一个队列去完成
,下面的评论中提到用 HTMLEntities
可以改善截断问题,但是在测试中发现会有UTF-8 invalid 问题(需要3bytes,只传2bytes,不知道是不是我数据的问题),于 ...
- 2009-10-26 18:16
- 浏览 991
- 评论(0)
今天看ActionController::AbstractRequest的文档, 发现relative_url_root的解释竟然是这样的:
Returns the path minus the web server relative installation directory.
This can be set with the environment variable RAILS_RELATIVE_URL_ROOT.
It can be automatically extracted for Apache setups. If the server is
not Apache, ...
- 2009-10-26 16:40
- 浏览 816
- 评论(0)
ActiveRecord 是好东西,可以简化很多代码,在 Rails 之外做数据维护时也是超级好用。今天需要在两个数据库之间做下数据迁移,因为 schema 有变,所以 mysqldump 基本没什么用。
先是发现了一个 ar_fixture
的插件,使用方法极度简单,但是出现了 UTF-8 不支持的问题,我数据库里使用中文的字段竟然按照 binary 处理,不理解。
最终找到一篇文章
很靠谱,实验一下,问题搞定。
先写一个数据库配置文件 database.yml
db1:
adapter: mysql
host: localhost
username: root
...
- 2009-10-26 16:20
- 浏览 1370
- 评论(0)
最近正式推出 Google Apps
,提供了 Email/Calendar/Docs/… 一堆功能,最重要的一个就是 Email 了,大家可以在 Gmail 中使用自己的域名。我们为多背一公斤申请了 1kg.org
。设置了 MX 记录和 CNAME,不知为何现在 mail/docs/calendar.1kg.org 都无法访问,但是通过 nslookup 查看已经指向 Google 的 server 了。邮件功能倒是工作正常,给自己申请的 suave.su # 1kg.org
可以正常收到邮件。
Google 这服务对我来说最重要的是可以作为邮件服务器为网站发一些欢迎/提醒之 ...
- 2009-10-26 16:19
- 浏览 1232
- 评论(0)
一直使用 restful_authentication
作用户认证,最近它加上的状态机功能
(用了 acts_as_state_machine),装上以后遇到灵异事件,系统发出的激活邮件里面的激活码和数据库里面存的不一样。我并不了解 acts_as_state_machine 的具体机制,只是觉得下面一行可能运行了两遍:
state :pending, :enter => :make_activation_code
Google 了一下,在作者的 README
里找到答案:
Pay attention, may be this is not an issue ...
- 2009-10-26 15:58
- 浏览 1103
- 评论(0)
跑在线上的 railsapp 抛出来的 exception 很重要,
依靠它才能发现实际的 bug, 但是看 production log 是完全不靠谱的方式, 之前有个 exception notifier
plugin 可以在出现异常的时候发邮件, 但是我没有 smtp server 怎么办?
急人之所急, 想人之所想, 老外抓住了这个细分市场, 出现了两个专门捕捉 exception 的 SaaS: getexceptional.com
, hoptoadapp.com
我用了第二个, 界面比较Q, 注册个免费帐户(高级服务是要收费的), 安装指定插件, 但是测试插件出现 ...
- 2009-10-26 15:57
- 浏览 803
- 评论(0)
使用 acts_as_taggable_on_steroids 之后经常找有某个 tag 的 item:
@items = Item.find_tagged_with(”tag”)
找到很多需要分页显示,于是顺利成章的在后面加上:
@items = Item.find_tagged_with(”tag”).paginate :page => paramsp[:page] || 1, :per_page => 20
发现无效!原因是 find_tagged_with 返回的是 Array,will_paginate 强大的分页功能瞬时歇菜。
于是乎整合一下 ...
- 2009-10-26 15:56
- 浏览 932
- 评论(0)
我所有的项目几乎都用 restful_authentication 做了用户管理这部分,应用中经常要在 model 中调用 current_user,而这个是 session 相关的信息,在 Model 中不应直接读到,Google 到一个比较不错的办法
,是 Beast 的作者提供的。
首先在 User Model 中加入一个类变量:
class User < ActiveRecord::Base
cattr_accessor :current_user
...
end
之后在 ApplicationController 中用 before_filter 给刚才的类 ...
- 2009-10-26 15:55
- 浏览 893
- 评论(0)
在 Google Translate 上面有个很实用的 browser bookmark,实际上是一段 js 脚本,用它可以将当前网页用 Google Translate 翻译成各种语言。
这段 js 一样可以用在你的网站中,这样就能给网站添加一个简化的多语言版本了,最大的问题也就是你网站的界面设计可能不适应翻译过来的语言。
如果想让翻译的页面在新窗口中打开,可以参考这篇博客
方式就是将 location.href = 改成 window_name = window.open(…)
- 2009-10-26 15:54
- 浏览 1756
- 评论(0)
好友动态在各大社交网站中基本上已经是标配了,而且一般都会显示在用户登录之后的默认首页上,这种做法的确方便用户了解网站和自己朋友的一些动态。设计上应该如何实现呢?Google 了一些资料,整理在下面,欢迎有实际经验的朋友指点!
用户看到的可能是三种情况:
我的动态
好友的动态
全站的动态
朋友动态这种信息,根据网站的实际情况需要考虑几个问题:
1、是否只让用户看到最新n条?(海内的最新动态数量是固定的,采用先进先出原则,用户只能看到最新的n条;而UCH则可以每页150条允许用户翻页
)
2、用户增减好友后,朋友动态是否能够立刻体现出变化?(在海内,我如果在好友名单中 ...
- 2009-10-26 15:51
- 浏览 2540
- 评论(0)
原文:
Ruby on Rails Rake Tutorial (aka. How rake turned me into an
alcoholic)
引言:作为一个
rails
的开发者,你可能很熟悉使用
rake
进行你的测试,或者使用
rake
db:migrate
运行你的
migrations
,但是你真的知道
Rake
的背后故事吗?你意识到可以自己写一个
Rake
任务或者一个有用的
lib
吗
?
下面是我们使用
Rake
任务的例子:
1
、给列表中的用户发送邮件
2
、每晚数据的计算和 ...
- 2009-10-16 11:04
- 浏览 1219
- 评论(0)
最近要研究一个项目,由于数据量比较大(据一开始的估计,大概会有1000万条每个表里面),所以一直不知道用什么数据库,以前做ROR项目的时候,总是用MySQL,因为开源,而且速度快。
但是现在不知道应该使用什么数据库……以前也从来没有做过这么大数据量的项目,而且用ROR到底合适不合适,从网上看,ROR目前不适合的项目只是那些“killer Application”,这个项目大概就是一种B2B的平台,采用ROR应该没有什么问题吧。。。。。
从网上找了点MySQL、Oracle、SqlServer的优缺点:
MySql
:
优点: 1.支持5000万条记录的数据仓库
2.适 ...
我们要用cookies来实现这个功能,大多数用户使用session来实现存储用户的登录信息,这是一个很好的做法。session跟cookie不同,session可以自动加密要存储的信息并用浏览器的cookie来存储。 ActionController#cookie提供了一个在浏览器存储信息的方法,但是不能自动加密,如果你需要的话,可以自己加密。
如果一个用户选择了remember me这个功能登录了之后,我们需要把session的过期时间设置的长一点,比如30天,但是只改变这一个session的过期时间很难。
首先我们要创建两个cookie:
第一个:存储用户的ID信息,当然你 ...
* 将你的程序所用到的密码和API证书号保存在一个自定义的配置文件中。我使用一个YAML并沿用了database.yml类似的格式。
* 有需要的时候就使用常量。不要重复诸如你的客服邮件地址这类字符串,而是将它们保存在常量中(可以保存在environment.rb或者你自己的配置文件中),然后在整个程序中使用该常量。
* 保持使用UTC时间,这可以使你的程序有更好的一贯性。(不过Rails 2.1的Timezone可提供更好的功能)
* 请勿在一个 Active Record?
数据模型中遍历另一个数据模型。那样的话会产生大量的SQL查询操作。正确的实现方法是:1)如果多 ...
- 2009-07-20 12:50
- 浏览 919
- 评论(0)