标签: ruby

如何在IRB中重新加载脚本?

我正在编写一个用于Rails环境的Ruby脚本,但我选择从irb运行它,因为重新加载Rails控制台可能会很麻烦.现在irb的等待时间要短得多,但是我不得不重新启动irb并且每当我做出改变时都需要脚本.有没有更简单的方法从irb重新加载脚本?

我在这个帖子中找到了一个方法,但这只是显然适用于gem文件.我的require语句看起来像这样

 require "#{File.expand_path(__FILE__)}/../lib/query"
Run Code Online (Sandbox Code Playgroud)

编辑:尝试load而不是require,我仍然无法让它工作.我无法阻止这些错误.

ruby-1.9.2-p0 > load "#{File.expand_path(__FILE__)}/../lib/query.rb"
LoadError: no such file to load -- /Users/newuser/Dropbox/Sites/rails/hacknyc/(irb)/../lib/query.rb
Run Code Online (Sandbox Code Playgroud)

ruby irb

61
推荐指数
2
解决办法
4万
查看次数

Lisp和Erlang Atoms,Ruby和Scheme符​​号.它们有用吗?

在编程语言中使用原子数据类型的功能有多大用处?

一些编程语言具有原子或符号的概念来表示各种常量.我遇到的语言(Lisp,Ruby和Erlang)之间存在一些差异,但在我看来,一般概念是相同的.我对编程语言设计很感兴趣,我想知道原子类型在现实生活中提供了什么价值.其他语言如Python,Java,C#似乎在没有它的情况下做得很好.

我没有Lisp或Ruby的实际经验(我知道语法,但在实际项目中没有使用过).我已经使用Erlang足以用于那里的概念.

ruby lisp erlang scheme

61
推荐指数
6
解决办法
9699
查看次数

当我们导入csv数据时,如何消除"UTF-8中的无效字节序列"

我们允许用户通过csv导入数据(使用ruby 1.9.2,因此它的速度更快).

当然,它是用户数据,可能无法正确消毒.

当我们尝试在/ index方法中显示数据时,我们有时会得到错误"UTF-8中的无效字节序列"指向我们的erb,其中我们显示了一个字段widget.name

当我们进行导入时,我们希望强制传入的数据有效...是否有一个ruby运算符,它将字符串映射到有效的utf8字符串,例如类似

goodstring = badstring.no_more_invalid_bytes
Run Code Online (Sandbox Code Playgroud)

"坏"数据的一个例子是char,它看起来像连字符,但不是常规的ascii连字符.我们更喜欢将非utf-8字符映射到合理的ascii等效字符(umlat-u to u to exmaple)但是我们可以简单地将字符剥离到.

因为这是在导入大量数据时,它需要是一个快速的内置运算符,希望......


注意:这是一个数据示例.该文件来自窗口,是8位ascii.当我们导入它并在我们的erb中我们显示widget.name.inspect(而不是widget.name)时,我们得到:"Chains\x96附件"

所以数据的一个例子是"连字符",它实际上是8位代码96.

---当我们改变我们的csv解析以分配fldval = d.encode('UTF-8')时,它会抛出此错误:

Encoding::UndefinedConversionError in StoresController#importfinderitems
"\x96" from ASCII-8BIT to UTF-8
Run Code Online (Sandbox Code Playgroud)

即使我们简单地剥离非ascii,我们正在寻找的是一种简单的方法来强制它无论原始类型是否有效utf8.


虽然不像强制编码那样"好",但这对我们的导入时间有点小费用:d.to_s.strip.gsub(/\P {ASCII} /,'')谢谢你,Mladen!

ruby utf-8

61
推荐指数
5
解决办法
5万
查看次数

我怎么知道何时在Rails中"刷新"我的模型对象?

这是我正在进行的集成测试的一部分:

user = User.first
assert !user.is_active?

get confirm_email_user_url(user),:confirmId => user.mail_confirmation_hash

assert_equal response.status,200
# because confirm_email_user_url modifies the activation state of the object
user = User.first
assert_equal user.state,"activated"
Run Code Online (Sandbox Code Playgroud)

我花了最后一小时调试这个:).在我的初始版本中,我在user访问confirm_email_user_url后没有重新初始化,并且inactive即使用户被激活,状态也始终如此.

我怎么知道我是否应该"重新加载"(缺少一个更好的名字)我的模型对象?我应该怎么做才能这样做?

ruby testing activerecord ruby-on-rails

61
推荐指数
2
解决办法
4万
查看次数

61
推荐指数
5
解决办法
3万
查看次数

将字符串转换为特定日期时间格式?

"2011-05-19 10:30:14"
Run Code Online (Sandbox Code Playgroud)

Thu May 19 10:30:14 UTC 2011
Run Code Online (Sandbox Code Playgroud)

如何将特定字符串转换为此日期格式?

ruby ruby-on-rails

61
推荐指数
5
解决办法
9万
查看次数

Ruby on Rails Switch

有人可以举例说明如何在Ruby中使用switch case作为变量吗?

ruby switch-statement

61
推荐指数
1
解决办法
8万
查看次数

工厂女孩 - 目的是什么?

当我可以使用before(:each)块时,工厂女孩在rspec测试中的目的是什么?感觉就像Factory Girl和a之间的唯一区别before(:each)是工厂在测试之外准备对象创建.这是正确的吗?

ruby factory-bot

60
推荐指数
3
解决办法
2万
查看次数

野生黄瓜的好例子?

几年前我曾尝试过Cucumber的一些项目,我希望再给它一次.我真的不需要另一篇"Beginning Cucumber"文章.相反,我希望看到一些实际用途,其他黄瓜用户会考虑惯用和反模式.

那么,在您看来,大型项目中实际黄瓜规格的最佳例子是什么?

ruby bdd cucumber

60
推荐指数
5
解决办法
3万
查看次数

是否有Rails控制台命令(Rails 3+)重新加载更改的代码?

我正在玩控制台,我改变了一些模型代码,现在我想测试它.我通常会重新启动控制台.有更快的方法吗?也许是一个控制台命令来重新加载模型代码?

ruby ruby-on-rails ruby-on-rails-3

60
推荐指数
2
解决办法
2万
查看次数