我希望得到一个迭代Ruby Hash的特定输出.
这是我想迭代的哈希:
hash = {
1 => ['a', 'b'],
2 => ['c'],
3 => ['d', 'e', 'f', 'g'],
4 => ['h']
}
Run Code Online (Sandbox Code Playgroud)
这是我想得到的输出:
1-----
a
b
2-----
c
3-----
d
e
f
g
4-----
h
Run Code Online (Sandbox Code Playgroud)
在Ruby中,如何使用Hash获得这样的输出?
另一个问题是关于bootstrap 3 的相同需求(那个问题),但是提出的解决方案不适用于Bootstrap 4.
这篇文章的图片很好地解释了我想要的东西.
甚至更多这个bootply.
如何使用Bootstrap 4实现这一目标?
html jquery twitter-bootstrap twitter-bootstrap-4 bootstrap-4
我正在使用Ruby on Rails编写一个Ajax请求表单,使用如下所示的collection_select标记:
<%= collection_select("Jobs", "clearance", @allClearances, "clearance", "clearance", {:prompt => "Select a Clearance"} )%>
Run Code Online (Sandbox Code Playgroud)
然后,Ruby使用id = "Jobs_clearance"和构建HTML选择标记name = "Jobs[clearance]"
我想将参数发送到我的控制器,如下所示:
class JobsController < ApplicationController
def foo
@clearance = params[:Jobs[clearance]]
end
Run Code Online (Sandbox Code Playgroud)
不幸的是,Ruby只读取":Jobs"符号而不是":Jobs[clearance]"
有没有办法逃脱它[]的?反斜杠不起作用.
我有40个类别,每个类别有10-100个子类别.默认情况下,用户侦听所有类别和子类别.我想给每个用户选择从整个类别或特定子类别取消绑定的能力.所以,现在我拥有的每个类别都是一个频道,每个子类别都是一个事件.
现在,我有类似每个用户绑定2000-3000事件的东西,我知道这是错误的,那么让用户在3000个事件之间进行过滤的正确方法是什么?绑定到那么多事件是否可以?
我想覆盖ruby中的Hash类本机括号.
注意我不想在继承自Hash(没有子类化)的类中覆盖它们,我想实际上覆盖Hash本身,这样任何地方的任何哈希都将继承我的行为.
具体来说(奖励积分为......) - 我希望这能够本地模拟具有无差别访问权限的哈希.在JavaScript中我会修改prototype,Ruby以其元编程而闻名,所以我希望这是可能的.
所以我的目标是:
>> # what do I do here to overload Hash's []?...
>> x = {a:123} # x is a native Hash
>> x[:a] # == 123, as usual
>> x['a'] # == 123, hooray!
Run Code Online (Sandbox Code Playgroud)
我试过了:1)
class Hash
define_method(:[]) { |other| puts "Hi, "; puts other }
end
Run Code Online (Sandbox Code Playgroud)
和
class Hash
def []
puts 'bar'
end
end
Run Code Online (Sandbox Code Playgroud)
两个都崩溃了.
如下面的代码所示,在超类中定义类访问器可能会有意外行为,因为类访问器对于所有子类都是相同的变量.
class Super
cattr_accessor :name
end
class SubA < Super; end
class SubB < Super; end
SubA.name = "A"
SubB.name = "B"
SubA.name
=> "B" # unexpected!
Run Code Online (Sandbox Code Playgroud)
我希望每个子类都有一个独立的类访问器,因此可能的解决方案是将cattr_accessor从超类中移出并将其放在每个子类中.
class Super; end
class SubA < Super
cattr_accessor :name
end
class SubB < Super
cattr_accessor :name
end
SubA.name = "A"
SubB.name = "B"
SubA.name
=> "A" # expected!
Run Code Online (Sandbox Code Playgroud)
这个解决方案是一个很好的做法吗?你知道更好的选择吗?
我过去14秒(使用Ruby,在我的IRB控制台中).我只想了解究竟发生了什么.
我只是观察返回值Time.now.strftime('%F %T')(返回格式为"YYYY-MM-DD HH:MM:SS"的字符串),几乎每秒都要进行一次评估.但后来发生了这种情况:
时间从"2018-07-18 14:25:25"跳到"2018-07-18 14:25:11"......没有上下文,没有Timecop(允许回溯的Ruby库),只是Ruby和时间(用于管理时间的Ruby核心库).
这可能发生什么?这会再次发生吗?
ruby ×5
hash ×2
bootstrap-4 ×1
clock ×1
escaping ×1
html ×1
inheritance ×1
jquery ×1
output ×1
overriding ×1
pusher ×1
select ×1
time ×1