小编Eri*_*ght的帖子

Ruby round to_int如果是整数

在ruby中,我想将float转换为int,如果它是一个整数.例如

a = 1.0
b = 2.5

a.to_int_if_whole # => 1
b.to_int_if_whole # => 2.5
Run Code Online (Sandbox Code Playgroud)

基本上我试图避免在任何没有小数的数字上显示".0".我正在寻找一种优雅(或内置)的方式

def to_int_if_whole(float)
  (float % 1 == 0) ? float.to_i : float
end
Run Code Online (Sandbox Code Playgroud)

ruby floating-point int

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

Rails 3应用程序中的Sass导入错误 - "导入未找到或不可读的文件:指南针"

我有一个Rails 3应用程序,我成功运行compass init rails ./ --using blueprint.我可以@import从/ stylesheets目录中找到文件,但是当我尝试时出现错误@import compass.

现在该应用程序有两个简单的sass文件:

common.scss

$body-background: blue;
Run Code Online (Sandbox Code Playgroud)

main.scss

@import "common";
//@import "compass";

body { 
  background: $body-background; 
}
Run Code Online (Sandbox Code Playgroud)

随着这@import "compass"条线的注释,这个工作 - 我得到一个蓝色的背景,所以我知道Sass正在工作.

如果我取消注释该行,并尝试导入compassblueprint其他任何东西,我会收到这样的错误.

Syntax error: File to import not found or unreadable: compass.
              Load paths:

                /Users/eric/path/to/myrailsapp/app/stylesheets
        on line 2 of /Users/eric/path/to/myrailsapp/app/stylesheets/main.scss

1: @import "common";
2: @import "compass";
3: 
4: body { 
5:  background: $body-background; 
6: }
Run Code Online (Sandbox Code Playgroud)

也许我必须明确地告诉Sass在哪里找到Compass宝石,所以我add_import_path在config/compass.rb中添加了一行:

require 'compass'
require 'html5-boilerplate' …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails sass blueprint-css ruby-on-rails-3 compass-sass

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

在Rails中,用英语显示两个日期之间的时间

在Rails项目中,我想找到两个日期之间的差异,然后用自然语言显示它.就像是

>> (date1 - date2).to_natural_language 
"3 years, 2 months, 1 week, 6 days"
Run Code Online (Sandbox Code Playgroud)

基本上是红宝石.

谷歌和Rails API没有发现任何东西.我发现了一些可以让你在一个单元中产生差异的东西(即两个日期之间有多少个星期),但是没有能够准确计算年,月,周,天的东西.

ruby time ruby-on-rails

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

如何检查Sinatra中是否存在模板

在Sinatra ruby​​框架中,我有一条这样的路线:

get '/portfolio/:item' do
  haml params[:item].to_sym
end
Run Code Online (Sandbox Code Playgroud)

如果存在的模板(例如,如果我点击/portfolio/website,并且我有一个模板被调用/views/website.haml),这很有用,但是如果我尝试没有模板的URL example.com/portfolio/notemplate,我会收到此错误:

Errno :: ENOENT at/portfolio/notemplate
没有这样的文件或目录 - /.../views/notemplate.haml

如何测试并捕获模板是否存在?我在Sinatra文档中找不到"if template exists"方法.

ruby templates sinatra

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