小编Eva*_*lsh的帖子

Capybara + RSpec只能看到控制器规格中的空白页面.为什么?

我正在尝试为简单的控制器编写控制器规范.但是,Capybara没有看到任何页面内容.但是,在我的浏览器中查看网站的页面工作得很好.我究竟做错了什么?

谢谢!

我的控制器规格

我的spec_helper.rb

我的Gemfile

ruby tdd rspec ruby-on-rails capybara

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

在Rails中将filesize字符串转换为千字节等价物

我的目标是转换表单输入,如"100兆字节"或"1千兆字节",并将其转换为我可以存储在数据库中的千字节文件大小.目前,我有这个:

def quota_convert
  @regex = /([0-9]+) (.*)s/
  @sizes = %w{kilobyte megabyte gigabyte}
  m = self.quota.match(@regex)
  if @sizes.include? m[2]
    eval("self.quota = #{m[1]}.#{m[2]}")
  end
end
Run Code Online (Sandbox Code Playgroud)

这是有效的,但只有当输入是一个倍数("千兆字节",但不是"千兆字节")并且由于使用而显得非常不安全eval.所以,功能,但我今晚睡不好觉.

任何指导?

编辑:------

行.出于某种原因,带有(.*?)的正则表达式在我的设置上无法正常工作,但我已经使用Rails的东西解决了这个问题.此外,我已经意识到字节对我来说会更好.

def quota_convert
  @regex = /^([0-9]+\.?[0-9]*?) (.*)/
  @sizes = { 'kilobyte' => 1024, 'megabyte' => 1048576, 'gigabyte' => 1073741824}
  m = self.quota.match(@regex)
  if @sizes.include? m[2].singularize
    self.quota = m[1].to_f*@sizes[m[2].singularize]
  end
end
Run Code Online (Sandbox Code Playgroud)

这捕获"1兆字节","1.5兆字节",以及大多数其他东西(我希望).然后它无论如何都使它成为单数版本.然后它进行乘法并吐出魔法答案.

这是合法的吗?

再次编辑:请参阅下面的答案.比我的废话更清洁.

ruby ruby-on-rails filesize

5
推荐指数
1
解决办法
3249
查看次数

标签 统计

ruby ×2

ruby-on-rails ×2

capybara ×1

filesize ×1

rspec ×1

tdd ×1