是否有可能将"1.hour"字符串转换为1.hour,将"2.hours"转换为2.hours in ruby?实际上我从表格的下拉列表中获取此值.我希望Time.now通过这样的方式添加它
time = Time.now + get_method(params[:hours_or_days])
Run Code Online (Sandbox Code Playgroud)
其中params[:days_or_hours]可能是"2.hours"或"1.hour"或"1.day".我想获得这些字符串的方法转换.可能吗?(通过某些方法send)
我正在尝试使用acts_as_paranoid插件进行软删除记录.我之前使用db中的标志来管理它.我知道这个插件将省略搜索记录并查找记录是否被软删除.我想知道的是,如果我在模型中进行了验证validates_uniqueness_of :email,我删除了(软删除)带有电子邮件'prince@gmail.com'的记录.现在,当我尝试创建具有相同电子邮件的新用户时,验证将起作用并阻止创建新记录.或者它会忽略软删除的记录,就像它对发现一样吗?(当然,我希望这会发生.)
基本上,我想这样做:
[1,2,3,4,5].some_method([1,5,8,7,8])
=> [0,-3,-5,-3,-3]
Run Code Online (Sandbox Code Playgroud)
在Ruby中执行此操作的最佳方法是什么?
有没有办法忽略所写的任何样式,并从头开始为新标签.例如,如果我写了一个样式
table {
large amount of styles..
}
Run Code Online (Sandbox Code Playgroud)
然后我想用这样的东西开始一个没有任何样式的新表
<table style="no style">
Run Code Online (Sandbox Code Playgroud)
我可以为新表编写一个不同的类并应用该类,但问题是有很多样式要覆盖.有这样的属性吗?
Array#uniq在Ruby 1.9中具有此行为
c = [ "a:def", "a:xyz", "b:abc", "b:xyz", "c:jkl" ]
c.uniq {|s| s[/^\w+/]} #=> [ "a:def", "b:abc", "c:jkl" ]
Run Code Online (Sandbox Code Playgroud)
它可能需要花费一点时间,并且相对于我们提供的内容具有独特的价值。但是,这在Ruby 1.8中不起作用。如何在ruby 1.8中创建此功能?
Ruby已经Enumerable#max和Enumerable#max_by我一起使用max_by以下方式.
array = [
{:a => 1, :b => 2, :c => 3},
{:a => 3, :b => 2, :c => 4},
{:a => 3, :b => 1, :c => 4}
]
max_item = array.max_by { |item| item[:b] }
=> {:b=>2, :c=>3, :a=>1}
Run Code Online (Sandbox Code Playgroud)
因此,它将返回单个最大值(我认为是第一个),即使有2个项具有相同的最大值.我想实现一个函数,在这种情况下给出两个项目.是否有其他变体max_by或者我需要从头开始为此编写?
我有一些capistrano部署的基本问题.首先,我需要知道git clone当git repo已经存在时,capistrano是否正在使用第二个或第三个.如果使用它有什么问题git pull吗?我set :deploy_via, :remote_cache在我的capfile中添加了.我问这个是因为我尝试在服务器的路径中添加一个新文件,而不是在git repo中,因为它是服务器特定的文件.下次我使用capistrano部署时,文件消失了.git clone即使已经创建了一个git repo ,似乎capistrano也在使用.为什么cant capistrano不能git pull用来更新代码?
例如,我现在正在搜索如下:
http://localhost:9200/posts/post/_search?q=content:%23sachin
Run Code Online (Sandbox Code Playgroud)
但是,我用'sachin'而不是'#sachin'获得所有结果.另外,我正在写一个正则表达式来获取术语数.方面看起来像这样:
"facets": {
"content": {
"terms": {
"field": "content",
"size": 1000,
"all_terms": false,
"regex": "#sachin",
"regex_flags": [
"DOTALL",
"CASE_INSENSITIVE"
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
这不会返回任何值.我认为这与在正则表达式中转义'#'有关,但我不知道该怎么做.我试图逃避它\和\\,但没有奏效.谁可以在这方面帮助我?
我知道这已被问过好几次了,但问题是他们带来了rmagick的新版本,现在老版本的方法不适用.
Server - CentOS release 5.6 (Final)
Ruby - ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-linux]
Rails - 2.3.5
Run Code Online (Sandbox Code Playgroud)
我尝试通过这些步骤安装rmagick gem.我执行这些查询时是root用户:
yum install ImageMagick.i386
yum install ImageMagick-c++-devel.i386
gem install rmagick
Run Code Online (Sandbox Code Playgroud)
前2个命令顺利执行,没有任何错误.在gem install rmagick,我收到此错误:
ERROR: Error installing rmagick:
ERROR: Failed to build gem native extension.
/usr/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for gcc... yes
checking for Magick-config... yes
Warning: Found a partial ImageMagick installation. Your operating system likely has some built-in ImageMagick libraries but not all …Run Code Online (Sandbox Code Playgroud) 我是铁杆上的红宝石新手,正在进行锻炼,希望你能帮助我.
在项目列表中,我需要显示每个项目的创建日期以及到期日期之前的天数.
每个项目应该只有7天有效,所以我尝试使用created_at字段,因为我已经将它作为创建日期,但它不起作用.
我有这个:
You created this item <%= time_ago_in_words(item.created_at) %> ago
The due date for this item is <%= @duedate %>
Run Code Online (Sandbox Code Playgroud)
还有这个:
@duedate = Item.find(params[:id])created_at+6.days
Run Code Online (Sandbox Code Playgroud)
如何在项目创建日期添加6天?
提前致谢.
ruby ×4
arrays ×1
capistrano ×1
css ×1
git ×1
html ×1
imagemagick ×1
max ×1
rmagick ×1
ruby-1.8 ×1