在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) 我有一个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正在工作.
如果我取消注释该行,并尝试导入compass或blueprint其他任何东西,我会收到这样的错误.
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
在Rails项目中,我想找到两个日期之间的差异,然后用自然语言显示它.就像是
>> (date1 - date2).to_natural_language
"3 years, 2 months, 1 week, 6 days"
Run Code Online (Sandbox Code Playgroud)
基本上这是红宝石.
谷歌和Rails API没有发现任何东西.我发现了一些可以让你在一个单元中产生差异的东西(即两个日期之间有多少个星期),但是没有能够准确计算年,月,周,天的东西.
在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"方法.