最近在和朋友共同做一个项目(当然是rails项目),每个人分别负责几个功能模块。我们使用的是Rails2.1,项目的框架是那个哥们搭的,我加入之前简单看了一下整体的代码,由于还处在很初级的阶段所以代码比较简单,至于plugin,我就是打开vender/plugin简单的扫了一眼。随着项目的进行,发生了一些比较奇怪的事情,所有的**_id字段都被添加成为了foreign_key,我的第一直觉是:”难道rails新版本中添加了这个功能?但是没看到任何的地方提起啊!”于是乎又翻看了rails2.1的新功能 feature list,还是没有找到任何相关的信息。这个时候脑子不知怎么就这么死,不知道看看是不是plugin的问题,结果硬是分别测试了1.2.6,2.0.2 和2.1.0的migration,都没有发现自动添加fk的问题,这个时候才恍然大悟,打开了plugin目录,赫然看到了foreign_key_migrations。这个时候一切都明朗了:都是plugin搞得鬼。
We(e-accent and jackfruitdesign) developed a small application to make merging delicious bookmarks into firefox easier, keeping delicious tags information at the same time. If you are encountering the same problem using firefox bookmarks management when trying to import your delicious bookmarks, then give it a shoot: http://delicious.e-accent.com
吃东西得趁热,学rails也不例外,chinaonrails的一个帖子将大家的积极性调动了起来,我也献了自己的一份力量,翻译了第二章 ActiveRecord,基本完成,明天还要修改一些细节。国内rails的社区力量还是很强很可爱的。
最近获得了好多的关注,作为tech“潮人”咱自然不能落后,看了几天,学习了不少有用的知识, 简单的谈谈使用git的过程.注册github.com帐户之类的废话就不用说了.这里我以自己下载、学习 rails-openid-kit 为例, 总结一下我使用github,并且为开源软件贡献一点力量的过程(顺便提一句,如果你希望为你的网站添加openid支持,那么openid-rails-kit是一个很好的选择)
在github上边找到openid-rails-kit,然后 “fork”
这个时候网站会跳转到你自己的页面,然后在你自己的帐户中copy一份openid-rails-kit项目的源代码,所以“fork”说白了就是,copy一份项目的代码,你对这份代码拥有一切权利,当然,这份fork过来的代码也会保留一切之前的log/change history .这时候你会看到 public clone url , your clone url的字样,很明显,一个是给所有人的只有读权利的地址,一个是你自己用的可以提交更改的地址。当地点击 Your clone url时候一行命令会蹦出来,copy之。
这时回到我本地,打开iterm, paste
当然了再下一步就是打开textmate,一通改。这时候你也许在纳闷,我的这个版本和原作者的版本有什么区别,我改了会不会对原作者的版本产生任何的影响呢,如果我提交了我的更改那么别人是否能够看到我都改了什么呢?呵呵,会有影响也可能没有影响,不过如果你提交了你的更改,在git里边通过git push来提交,那么所有关注这个项目的人都可以看到你的更改,过一会我们会具体演示别人怎么看到你的更改,你怎么看到别人的更改。当然了如果你使用textmate,那么git tmbundle 以及 github tmbundle 都是使用git必备的。
在git当中branch的概念无处不在,同时branch的创建, switch, delete都是非常的cheap。 我们刚刚通过git clone 生成的project 其实就是一个叫”master”的branch,我们用”master”来引用这个存储在本地的branch. 这个branch对应着你在github上的master branch,不过对于那个remote master branch,我们习惯用 origin/master来表示,origin可以认为是我们给remote repository起的一个别名. 同时当我运行 git branch new-features 的时候,git 又以我现在所在branch(master)为基础,创建了一个新的名叫new-features的branch, 通过git checkout new-features, 我们很轻松的就由master转到了new-features这个branch. 接下来就是可以放心大胆的添加我们的新功能,而不用担心破坏了master的功能。
ok, 现在我们添加了新的功能,同时所有的新功能通过了测试,现在我们准备将新功能merge到master当中了。首先确认你已经提交了所有对于new-features branch的更改: (new-features branch) git commit -a -m ‘commit all my [...]