新手问题 Ruby 能否为一个还没有载入的类设置一个载入后的 callback?

ibachue · 2013年01月19日 · 最后由 ashchan 回复于 2013年01月19日 · 2665 次阅读

Hi all, 由于有些个人脚本希望能在一个 Rails 项目中的 console 里调用到,但是不能把这些代码提交上去(也不能 gitignore 掉,否则.gitignore 文件就要提交了,当然也不希望长期滞留在 git unstaged 中,太麻烦了)如何解决?谢谢

我现在的一个想法是放在 irbrc 中,不过由于我电脑上不是只开发一个 Rails 项目,所以免不了要有一定的判断,但是 irbrc 好像总是比其他 Rails 里的类提前 load 进来,此时在 irbrc 判断项目里的某些特征是否存在显然是不行的(甚至连 Rails 模块都不存在),那怎么办呢?有没有什么办法提前设置 callback 能否在某些类 load 进来以后才执行,如果不 load 就不执行?问问大家。。

直接把代码写在类的文件里,或者 hack auto_load 方法

#1 楼 @jjym 前者显然避不开 git 啊 至于后者 也一样 如何避开?

哦,不提交的话就写个 initializer 里 hack,当然可以避开

#3 楼 @jjym initializer 不也在 git 里嘛?

你不能 ignore hack 的那个文件吗。。

#5 楼 @jjym 那不是就要提交.gitignore 了嘛?

为啥不能提交.gitignore。。。而且 git 你不添加那个文件不就不会提交了。。。话说能 ignore .gitignore 文件自身么?

提交 .gitignore 会有问题吗? .gitignore 是可以自己忽略自己的。

script/rails c -- -r/path/to/your/callback

貌似有个全局的 gitignore

#8 楼 @yesmeck #7 楼 @jjym git 不添加的话就在 untracked 里面了啊

#10 楼 @hooopo 这个我确实想到过 不过希望等个更好的方法

#7 楼 @jjym .gitignore 早就在 git 库里了 去掉的话同样也有一次提交 而我现在希望的是不提交

#13 楼 @iBachue untracked 不就是不提交吗。。

#14 楼 @jjym 这不是 best practise

.git/info/exlude

如果仅仅是不想入库,把文件加到 global gitignore 中去就行了:

git config --global core.excludesfile ~/.gitignore

需要 登录 后方可回复, 如果你还没有账号请 注册新账号