小编ajo*_*sen的帖子

rbenv没有改变ruby版本

我根据github方向安装了rbenv.我正在运行OSX,但我在Ubuntu 12.04 VM上尝试了这个并得到了相同的结果.当我尝试更改ruby版本时,以下是我在终端中获得的内容:

rbenv versions
* 1.9.3-p0 (set by /Users/user/.rbenv/version)
1.9.3-p125

rbenv global
1.9.3-p0

rbenv rehash

ruby -v
ruby 1.8.7 (2011-12-28 patchlevel 357) [universal-darwin11.0]

which ruby
/usr/bin/ruby
Run Code Online (Sandbox Code Playgroud)

任何人都有任何想法为什么rbenv没有像它认为的那样切换ruby版本?此外,本地目录中没有.rbenv文件会导致ruby版本默认为1.8.7

rbenv local
rbenv: no local version configured for this directory
Run Code Online (Sandbox Code Playgroud)

ruby rbenv

247
推荐指数
16
解决办法
15万
查看次数

鱼壳命令替代

有没有更好的方法在鱼壳中进行命令替换?

在bash我可以这样做:

~> echo $(whoami) => user
~> echo "I am: $(whoami)" = > I am: user
Run Code Online (Sandbox Code Playgroud)

但在鱼类看起来像我必须做的:

~> echo (whoami) => user
~> echo "I am: (whoami)" => "I am: (whoami)"
~> set who (whoami); echo "I am: $who" => I am: user
Run Code Online (Sandbox Code Playgroud)

这是在fish中进行命令替换的推荐方法,其中替换需要在带引号的字符串中发生吗?

bash shell terminal fish

7
推荐指数
1
解决办法
1266
查看次数

测试redis密钥到期

我想知道在redis密钥到期后是否有人有一种聪明的方法来测试行为.我本质上是为我的应用程序构建一个小的redis支持的缓存,并希望测试redis密钥设置为过期后会发生什么.

我使用rspec作为我的测试框架.我尝试使用Timecop来改变测试期间的时间,但意识到它只会影响测试框架工作,而不会影响外部redis服务器.

我可以将TTL设置为1,然后使用睡眠(1),但我宁愿不在我的测试中引入睡眠.

有没有人有一个很好的测试方法?

rspec ruby-on-rails redis

6
推荐指数
1
解决办法
4696
查看次数

ActiveRecord 验证 nil

我正在尝试编写一个允许任何字符串但不允许 nil 的活动记录验证。

validates_presences_of 的问题是它对于我想认为有效的“”或“”返回 false。

我也尝试过 validates_length_of :foo, :minimum => 0 ,但没有成功

我也尝试过 validates_length_of :foo, :minimum => 0, :unless => :nil? 这也不起作用。这两个都允许设置 nil 值并且验证仍然返回 true。

我在这里错过了什么吗?我觉得简单地验证该元素不为零不应该那么困难。

ruby ruby-on-rails activesupport rails-activerecord

0
推荐指数
1
解决办法
8969
查看次数