- 浏览: 51279 次
- 性别:
- 来自: 青岛
最新评论
文章列表
render和redirect的区别在于: render 没有执行相对应的controller方法!而redirect_to 则重新执行controller方法,也就是说redirect_to 让浏览器去创建一个新的请求。 render 其参数是有效的(有重复提交问题),而redirect_to 其参数是重新请求的。
i insert模式
v visual模式
ctrl+v visual+block模式
r 替换
d 删除
x 剪切
u 撤销
查找替换
:%s/a/b/gc 全文替换
:'<,'>s/a/b/gc 段落替换
vim 打开一个文件 对一个文件路径按GF 可以链接到这个文件中
文本全选: shift+v gg shift+G
文本缩进 shift+>
mysql or 索引
- 博客分类:
- mysql
mysql 中
select * from u where user_name =1 or
user_email =2
用or链接 如果user_name 和 user_email 建立索引 mysql是会 忽略掉两者的索引
此时 可以用 union操作来 链接 条件
select * from u where user_name =1
union
select * from u where user_email =2
def has_href_not_XXX?(content)
content = content.dup
loop do
content.sub!(/href=(['"])([^'"]+)\1/, "")
if $2.blank?
return false
else
if (!$2[".XXX.com"])
return true
end
end
end
end
form_for && form_tag
- 博客分类:
- ruby
<% form_for @XX, :url => '', :html => {:id => ''} do |f| %>
生成的form 以什么方式提交 取决于@XX是 什么状态的对象
如果是new 则以post方式提交
如果是已存在的实例对象 则以put 方式提交
所以路由配置 method不要配死
而form_tag 则 都会以post方式提交
not in & not exists
- 博客分类:
- mysql
请注意not in 逻辑上不完全等同于not exists,如果你误用了not in,小心你的程序存在致命的BUG:
请看下面的例子:
create table t1 (c1 number,c2 number);
create table t2 (c1 number,c2 number);
insert into t1 values (1,2);
insert into t1 values (1,3);
insert into t2 values (1,2);
insert into t2 values (1,null);
select * from t1 where c2 n ...
REST, Resources, and Rails
Before REST came I (and pretty much everyone else) never really knew where to
put stuff.
—Jonas Nicklas on the Ruby on Rails mailing list
Routing and CRUD
当你在routes.rb里这么写的时候:
map.resources :auctions
你就已经创造了4个具名路由,实际上允许你访问7个action(index, create, show,
update, ...
因此private和protected的在ruby当前和Java的定义有很大的区别:
1、在不同对象实例当中的作用域不同
Java当中,不管private还是protected的方法,都可以被同一个类别的其他对象实例调用;
Ruby当中,private方法不能被同一个类别的其他对象实例调用;
2、在类继承关系当中的作用域不同
ruby当中,不管private还是protected方法,都可以被子类继承;
Java当中,private方法不能被子类继承;
这种方法调用的差异,也许来自于不同的面向对象理念:Java的面向对象来自C++,强调类继承关系,所以方 ...
具名域 和 匿名域 ,rails无法处理多个order子句和limit子句 ,因此请保证调用链中只使用一次order或limit
当保存更新一个对象时, 如果使用find_by_sql 查询出一个对象,必须取出包含id的字段.
在验证时有些方法可以跳过回调,请小心使用这些方法。
* decrement
* decrement_counter
* delete
* delete_all
* find_by_sql
* increment
* increment_counter
* toggle* upda ...
如果:readonly 被设为 true 则不能将 find 方法返回的 ActiveRecord 对象再次存入数据库。
如果使用了:joins 或者:select 选项,那么得到的对象会被自动标记为:readonly。
默认的主键为ID,我们可以如下来修改主键,
class LegacyBook < ActiveRecord::Base
self.primary_key = "isbn"
end
ActiveRecord会负责为你创建的每条记录新建主键值,他们是递增的整数,但不保证连续,然而,如果我们指定了主键字段,就必须同时负责将每条新记录的主键设为唯一的值,我们仍旧可以通过名为 id 的属性来设置主键值。也就是说,只要使用 ActiveRecord,主键字段在对象中的属性名称永远都是 id,primary_key=声明只是用于 ...
ruby中 对真值的定义 非常简单 除了nil和false之外 所有的值被解释为true
如果要查询一个boolean型字段的状态,就必须在字段名的后面加上?
user=User.find_by_name("tom")
if user.superuser?
.........
end
用这种方式访问对象的属性,ActiveRecord首先会查看字段的值,然后将数值0,字符才“0”、“f”、“false”、空字符串、nil 和常量false 都解释为false,其他值 解释为true 。
1、
将文件checkout到本地目录
svn checkout
path(path是服务器上的目录)
例如:svn checkout svn:
//
192.168
.
1.1
/
pro
/
domain
简写:svn co
2、
往版本库中添加新的文件
svn
add
file
例如:svn
add
test.php(添加test.php)
svn
add
*
.php(添加当前目录下所有的php文件)
3、
将改动的文件提交到版本库
svn ...
http://hi.baidu.com/magiclin/blog/item/5cda0bec2c73fc2362d09f0f.html