我有这个哈希,想要打印它:
{: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)
但我得到的只是一些空行.有什么想法吗?
我正在使用假期宝石.
假设我有一个id数组,可能大约有100000个id.在我无法创建临时表来进行JOIN的情况下.对我来说简单的解决方案是:
Product.where(id: ids)
Run Code Online (Sandbox Code Playgroud)
WHERE IN当数组很大时,这将生成似乎伤害Mysql 的子句.我想知道是否有更好的解决方案?
有没有一种方法来创建数组中的值NN,NNN,NNNN,NNNNN,NNNNNN在Ruby中的一条线?
我已经有了
array = Array.new(7) { |i| ("N"*i).to_s }
Run Code Online (Sandbox Code Playgroud)
但那包括""和"N".
谢谢你的帮助.
在我的 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)
但这看起来不太干净。有更好的解决方案吗?
只是学习灵丹妙药,我想了解为什么灵药选择如此冗长,并根据辅助方法做事:
String.upcase(name)
Run Code Online (Sandbox Code Playgroud)
而不是这样做:
name.upcase
Run Code Online (Sandbox Code Playgroud)
在Scala中你可以做到name.toUpperCase,它仍然会返回一个新变量,因为它是不可变的.
无论如何,只是试图理解这种方法的原因,因为我确信这是一个原因.
我很难找到一个确切的例子.
如果我有一个包含5个元素的数组.例如
list = [5, 8, 10, 11, 15]
Run Code Online (Sandbox Code Playgroud)
如果要循环,我想获取该数组的第8个(例如)元素.我不想只复制数组并获取第8个元素,因为nth元素可能会改变
基本上第8个元素应该是数字10.
有什么干净的方法吗?
我在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语言的地方.我不明白为什么它仍然在列表中!
能否将<%=标签放在标签内<%=,如下所示?
如果没有,它是怎么做的?我已经在表格中找到了图像的名称,并希望在显示图像时在图像路径中使用它。
<%= image_tag("tools/<%= tool.logo %>", :size => "50x50", :class=> "img-circular") %>
Run Code Online (Sandbox Code Playgroud) 我解决了一个问题,它需要取散列的最后一个键值对。例子:
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 哈希没有最后一种方法。
我在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),我该怎么做?