小编Ser*_*sev的帖子

把哈希放在Ruby中

我有这个哈希,想要打印它:

{:date=>#<Date: 2013-03-29 ((2456381j,0s,0n),+0s,2299161j)>, :name=>"Karfreitag", :regions=>[:de]}
{:date=>#<Date: 2013-04-01 ((2456384j,0s,0n),+0s,2299161j)>, :name=>"Ostermontag", :regions=>[:de]}
{:date=>#<Date: 2013-05-01 ((2456414j,0s,0n),+0s,2299161j)>, :name=>"Tag der Arbeit", :regions=>[:de]}
Run Code Online (Sandbox Code Playgroud)

我尝试过:

def print_holiday(a)        
  a.each do |date|
    puts date["name"] + " " + date["date"]
  end                   
end
Run Code Online (Sandbox Code Playgroud)

但我得到的只是一些空行.有什么想法吗?

我正在使用假期宝石.

ruby date

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

在ID列表中找到更好的解决方案?

假设我有一个id数组,可能大约有100000个id.在我无法创建临时表来进行JOIN的情况下.对我来说简单的解决方案是:

Product.where(id: ids)
Run Code Online (Sandbox Code Playgroud)

WHERE IN当数组很大时,这将生成似乎伤害Mysql 的子句.我想知道是否有更好的解决方案?

activerecord ruby-on-rails where-in rails-activerecord

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

如何在一行中创建字符串数组?

有没有一种方法来创建数组中的值NN,NNN,NNNN,NNNNN,NNNNNN在Ruby中的一条线?

我已经有了

array = Array.new(7) { |i| ("N"*i).to_s }
Run Code Online (Sandbox Code Playgroud)

但那包括"""N".

谢谢你的帮助.

ruby

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

比较 Rails 中的时间(不带秒)

在我的 Rails 5 应用程序中,我想在数据库中的某个日期时间后 10 分钟发送警报。例如,created_at 日期时间后 10 分钟。

因此,我每 1 分钟运行一次 cronjob,并且必须在数据库中查找 10 分钟前 create_at 的所有记录。

我的created_at字段的格式为2017-06-01 12:00:00。如何获取 10 分钟前created_at 的所有记录?

我的问题是秒,我不能简单地做到(这不是有效的 Ruby 代码,它只是为了表明我的观点):

where created_at == 10.minutes.ago
Run Code Online (Sandbox Code Playgroud)

我必须做类似的事情

where created_at > 10.minutes.ago AND created_at < 9.minutes.ago
Run Code Online (Sandbox Code Playgroud)

但这看起来不太干净。有更好的解决方案吗?

ruby-on-rails ruby-on-rails-4 ruby-on-rails-5

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

为什么elixir没有基于类型的方法在实例上工作?

只是学习灵丹妙药,我想了解为什么灵药选择如此冗长,并根据辅助方法做事:

String.upcase(name)
Run Code Online (Sandbox Code Playgroud)

而不是这样做:

name.upcase
Run Code Online (Sandbox Code Playgroud)

在Scala中你可以做到name.toUpperCase,它仍然会返回一个新变量,因为它是不可变的.

无论如何,只是试图理解这种方法的原因,因为我确信这是一个原因.

elixir

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

Ruby循环遍历数组中的每个元素n次

我很难找到一个确切的例子.

如果我有一个包含5个元素的数组.例如

list = [5, 8, 10, 11, 15]
Run Code Online (Sandbox Code Playgroud)

如果要循环,我想获取该数组的第8个(例如)元素.我不想只复制数组并获取第8个元素,因为nth元素可能会改变

基本上第8个元素应该是数字10.

有什么干净的方法吗?

ruby

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

如何使用Ruby 2.5.3从数组中删除字符串?

我在Ruby on Rails 5.2上开发.为了管理翻译,我希望允许用户选择与他当前语言不同的语言.应用程序的已配置语言列表是

 all_languages = I18n.config.available_locales
Run Code Online (Sandbox Code Playgroud)

all_languages是一个数组.puts all_languages收益:

en fr de it
Run Code Online (Sandbox Code Playgroud)

用户语言在users表中定义.方法返回当前用户的语言

user_language = current_user.language
Run Code Online (Sandbox Code Playgroud)

user_language是一个String.puts user_language收益:

en
Run Code Online (Sandbox Code Playgroud)

我尝试将delete(obj)方法应用于数组,但这不会改变数组:

all_languages.delete(user_language)
Run Code Online (Sandbox Code Playgroud)

我尝试只处理数组,但它不会改变语言数组:

remove_language = Array.new
remove_language << user_language
Run Code Online (Sandbox Code Playgroud)

puts remove_language 收益:

en
Run Code Online (Sandbox Code Playgroud)

puts all_languages - remove_language 收益:

en fr de it
Run Code Online (Sandbox Code Playgroud)

应删除en语言的地方.我不明白为什么它仍然在列表中!

ruby arrays ruby-on-rails

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

可以在&lt;%= image_tag内放置&lt;%=标签吗?

能否将<%=标签放在标签内<%=,如下所示?

如果没有,它是怎么做的?我已经在表格中找到了图像的名称,并希望在显示图像时在图像路径中使用它。

<%= image_tag("tools/<%= tool.logo %>", :size => "50x50", :class=> "img-circular") %>
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

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

为什么 Ruby 哈希不是 last 方法?

我解决了一个问题,它需要取散列的最后一个键值对。例子:

hash =  { "aa" => { :count => 1, :width => 333 }, "bb" => { :count => 1, :width => 77 } }
Run Code Online (Sandbox Code Playgroud)

我需要结果

result = [ "bb" => { :count => 1, :width => 77 } ]
Run Code Online (Sandbox Code Playgroud)

哈希有第一种方法

hash.first
=> [ "aa" => { :count => 1, :width => 333 } ]
Run Code Online (Sandbox Code Playgroud)

我想使用该last方法,但出现错误

NoMethodError: undefined method `last' for #<Hash:0x00007f82c75a9988>
from (pry):19:in `__pry__'
Run Code Online (Sandbox Code Playgroud)

这是我的解决方案

result = [hash.stringify_keys.keys[1], hash.stringify_keys.values[1]]
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么 Ruby 哈希没有最后一种方法。

ruby

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

Rails time_select设置默认值

我在rails视图中使用time_select,它看起来像这样:

<div class="field">
    <%= f.label :StartTime, "Start Time" %><br />
    <%= f.time_select :StartTime %>
</div>
Run Code Online (Sandbox Code Playgroud)

我想将默认时间设置为09:00(AM),我该怎么做?

ruby ruby-on-rails erb

0
推荐指数
1
解决办法
926
查看次数