标签: ruby

Ruby:Proc#call vs yield

thrice方法的Ruby中,以下两个实现之间的行为差​​异是什么?

module WithYield
  def self.thrice
    3.times { yield }      # yield to the implicit block argument
  end
end

module WithProcCall
  def self.thrice(&block)  # & converts implicit block to an explicit, named Proc
    3.times { block.call } # invoke Proc#call
  end
end

WithYield::thrice { puts "Hello world" }
WithProcCall::thrice { puts "Hello world" }
Run Code Online (Sandbox Code Playgroud)

通过"行为差异",我包括错误处理,性能,工具支持等.

ruby yield

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

使用Markdown获得带下划线的文字

我使用BlueCloth作为Ruby的Markdown库,我找不到任何用于获取带下划线的文本的语法.它是什么?

ruby markdown underline bluecloth

75
推荐指数
8
解决办法
10万
查看次数

Ruby字符串切片索引:str [n..infinity]

简单的问题,但在文档中找不到它.

如何将字符串或数组切片n直到永远?

>> 'Austin'[1..3]
=> "ust"
>> 'Austin'[1..]
SyntaxError: compile error
(irb):2: syntax error, unexpected ']'
    from (irb):2
Run Code Online (Sandbox Code Playgroud)

ruby

75
推荐指数
3
解决办法
4万
查看次数

将YAML与变量一起使用

YAML文件中的变量是否可能?例如:

theme:
  name: default
  css_path: compiled/themes/$theme.name
  layout_path: themes/$theme.name
Run Code Online (Sandbox Code Playgroud)

在这个例子中,如何theme: name: default在其他设置中使用?语法是什么?

ruby variables yaml ruby-on-rails string-interpolation

75
推荐指数
3
解决办法
10万
查看次数

验证字符串的最小和最大长度,但允许它为空

我有一个我想验证的字段.我希望该字段可以留空,但如果用户输入数据,我希望它以某种格式.目前我在模型中使用以下验证,但这不允许用户将其留空:

validates_length_of :foo, :maximum => 5
validates_length_of :foo, :minimum => 5
Run Code Online (Sandbox Code Playgroud)

我如何写这个来实现我的目标?

ruby validation model ruby-on-rails

75
推荐指数
4
解决办法
7万
查看次数

Ruby on Rails中的静态页面

制作具有诸如的页面的Ruby on Rails应用程序的标准方法是什么?

  • 关于
  • 联系

如果有人有链接或答案而不是仅仅说使用宝石,我会想知道因为我想学习如何使用这种行为制作简单的webapps.

ruby ruby-on-rails

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

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

停止rails控制台在循环结束时打印出对象

比方说,如果我循环遍历给定模型的所有实例并从每个实例输出内容,最后,irb仍将打印整个对象.

如果对象最终需要数百行,那么在我看到我实际需要的内容之前,这将是一个漫长的过程.有没有办法在rails控制台中禁用它?

ruby console ruby-on-rails irb

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

ruby .split('\n')没有在新行上拆分

为什么这个字符串不会在每个"\n"上拆分?(红宝石)

"ADVERTISING [7310]\n\t\tIRS NUMBER:\t\t\t\t061340408\n\t\tSTATE OF INCORPORATION:\t\t\tDE\n\t\tFISCAL YEAR END:\t\t\t0331\n\n\tFILING VALUES:\n\t\tFORM TYPE:\t\t10-Q\n\t\tSEC ACT:\t\t1934 Act\n\t".split('\n')
>> ["ADVERTISING [7310]\n\t\tIRS NUMBER:\t\t\t\t061340408\n\t\tSTATE OF INCORPORATION:\t\t\tDE\n\t\tFISCAL YEAR END:\t\t\t0331\n\n\tFILING VALUES:\n\t\tFORM TYPE:\t\t10-Q\n\t\tSEC ACT:\t\t1934 Act\n\t"]
Run Code Online (Sandbox Code Playgroud)

ruby string

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

Rails 4:如何重置测试数据库?

我在Rails 4上并注意到我的一些RSpec测试失败了,因为我的一些测试重构使用了一个前置过滤器(可能是因为交易).这篇文章描述了类似的问题:

一些运行后,rails测试数据库没有清除

代替使用DatabaseCleaner gem,是否有rake命令来清除测试数据库?我相信rake db:test:prepare在Rails 4中已被弃用.另外,如果之前的交易喜欢

post :create, user: Fabricate.attributes_for(:user)
Run Code Online (Sandbox Code Playgroud)

坚持不懈 是否有另一种重构方法可以避免手动清除测试数据库?

ruby rspec ruby-on-rails

75
推荐指数
3
解决办法
6万
查看次数