文章列表
class variables are available in class methods and instance methods, but class instance variable is only available in class methods:
ruby 代码
class Test
@@cla_var = 1
@inst_var = 1
def self.cla_var
@@c ...
- 2007-10-20 17:18
- 浏览 1929
- 评论(0)
假设我为了让用户输入的数据长度不超过数据库定义的长度,定义了如下validation:
ruby 代码
class User < ActiveRecord::Base
validates_length_of :name, :maximum => 50
end
上面代码的行为有时却颇为怪异:
ruby 代码
ruby script/console
>> u = User.new
=> #
>> u.valid? ...
- 2007-10-11 17:30
- 浏览 1066
- 评论(0)
进些天一直在读一本叫做RailssSpace(http://www.amazon.com/dp/0321480791)的书,其中有一个如何管理controller的规则觉得很有用,规则大致如下:
使用名词作为controller的名字;动词作为action的名字。例如:UserController中有login, logout, register, edit等actions.
如果发现自己开始定义带有下划线, 尤其是<verb>_<noun>形式的action, 因该考虑针对noun建立一个新的controller, verb作为新的controlle ...
- 2007-10-11 15:43
- 浏览 1010
- 评论(0)
在ruby代码中经常看到这种使用||的idiom:
ruby 代码
a = a || b
# or more concise:
a ||= b
但是却很少看到使用&&的场景。如果你在一个方法中想返回一个表达式, 就像这样:
ruby 代码
def foo
bar.prop
end
上面的代码就有个问题, 如果bar对象为nil, 则上面的代码就会抛出错误.修改一下上面的代码:
ruby 代码
def foo
bar.nil? ? bar : ba ...
- 2007-10-11 14:51
- 浏览 1012
- 评论(0)
helper主要是帮助视图尽可能将代码从视图中隔离出来, 并提高视图之间代码的可重用性. 基于此, rails为我们做了一些"连接"工作:
每一个controller都对应一个helper module,例如对应UserController的是UserHelper, rails内部做了一些连接工作,使得默认每个controller下的所有视图都可以访问相应helper 的方法.
rails内置一个全局helper:ApplicationHelper, rails内部做了一些连接工作,使得默认“所有controller”下的视图都可以访问Application ...
- 2007-10-10 16:45
- 浏览 1264
- 评论(0)
在测试中访问cookie的值必须要用这种形式: cookies['key'].value.first, 例如cookies['auth_token'].value.first。这里应注意两点, 一是在测试中访问cookie必须要用String作为key, 不能用Symbol(在controller中既可以用String,也可以用Symbol);二是要取得值必须调用value方法,但返回的是数组类型, 所以还要调用first方法。
有时我们在测试中想证明某个cookie值为nil, 我们可能这样写
ruby 代码
assert_nil ...
- 2007-09-26 14:57
- 浏览 1157
- 评论(0)
安装ImageMagick
ruby 代码
sudo apt-get install imagemagick
安装libmagick-dev, 首先看自己的'magick'包的版本号,然后根据相应的版本号安装相应的包。
ruby 代码
dpkg -l | grep magick
sudo apt-get install libmagick9-dev
安装Rmagick
ruby 代码
...
- 2007-07-25 18:05
- 浏览 1094
- 评论(0)
昨天晚上尝试在自己的IBM T60上安装Ubuntu 7.0, 安装过程十分简单,分区,一路回车,ok装完了,开始重启。
这个时候问题来了,在启动的进度条走到五六个格的时候,突然停止了,硬盘灯也不闪了,我想这下废了。按了一下Ctrl+Alt+Delete, 本来是想重启动,没想到进度条开始动了,启动继续,顺利进入登录页面。
心想是不是安装的过程有问题,于是又安装了一遍,结果问题依然存在。
接着在启动停止的时候,按ALT+F1看了一下日志,
ruby 代码
Loading, pease wait...
Kinit: name_to_dev_t(/dev/disk/by- ...
- 2007-07-25 17:03
- 浏览 3450
- 评论(0)
一篇介绍console使用技巧的好文章:http://errtheblog.com/post/26
除此之外,console可以运行在各种RAILS_ENV环境:
ruby 代码
#默认运行在开发环境
ruby script/console
#运行在测试环境
ruby script/console test
为了在console中让日志直接输出控制台,而不是日志文件中,修改~/.irbrc
ruby 代码
if ENV.include?('RAILS_ENV') && !Object.c ...
- 2007-07-23 15:14
- 浏览 981
- 评论(0)
我当前的项目中有一个User model, 大体如下:
ruby 代码
class User < ActiveRecord::Base
validates_uniqueness_of :username, :email
end
一般对user对象的修改主要有如下两种场景:
修改用户的基本信息,如email, nickname, ......
当用户上传文件到自己的空间时,需要更新user的disk_used属性
本可以用如下代码完成disk_used属性的更新:
ruby 代码
# uploading ...
- 2007-07-21 14:32
- 浏览 2200
- 评论(0)
用rubyonrails开发已有三个月左右, 还没有在model中使用过logger.今天碰巧需要在一个pseudo-model(不继承ActiveRecord::Base, 即不对应数据库中的表)中使用logger, 突然不知道应该从哪里获取logger.如果在Controller和Model的方法中, 可以直接引用logger, 例如:
ruby 代码
# use logger in controller
class ProductsController < ApplicationController
def index
...
- 2007-07-03 22:51
- 浏览 1204
- 评论(0)