我没有看到别人在红宝石中使用的eval,所以我假设没有它就可以完成.但我不知道怎么做.
(1..9).each { |n|
eval "user_#{n} = prefix << '_' << user_#{n} if user_#{n}"
}
Run Code Online (Sandbox Code Playgroud) 我希望在将用户名保存到我的数据库之前将其转换为符号,这似乎是合乎逻辑的,因为该用户名将经常被引用,我们希望保留内存.但是替换为字符串代替任何空格或其他非法字符有什么好的选择?还是应该保留一串以避免麻烦?
如果我有像这样的数组
ary = [0, 0, 3, 0, 0, 0, 2, 0, 1, 0, 1, 1, 0]
Run Code Online (Sandbox Code Playgroud)
获取阵列中有多少索引的列表的最高性能是什么?
inverted = [2,2,2,6,6,8,10,11]
Run Code Online (Sandbox Code Playgroud)
这就是我想出来的,但似乎有一种更有效的方式:
a = []
ary.each_with_index{|v,i| a << Array.new(v, i) if v != 0}
a.flatten
=> [2, 2, 2, 6, 6, 8, 10, 11]
Run Code Online (Sandbox Code Playgroud) 我认为redis测试至少与在对象中进行哈希查找一样快.
查找哈希值的对象
ruby-1.9.2-p180 :022 > quick(1000) {@p.lookup(:summary_header)} #=> nil
Rehearsal ------------------------------------
0.000000 0.010000 0.010000 ( 0.006522)
--------------------------- total: 0.010000sec
user system total real
0.010000 0.000000 0.010000 ( 0.006701)
Run Code Online (Sandbox Code Playgroud)
vs一个简单的Redis查找
ruby-1.9.2-p180 :023 > quick(1000) {r.get("header")} #=> nil
Rehearsal ------------------------------------
0.020000 0.020000 0.040000 ( 0.088880)
--------------------------- total: 0.040000sec
user system total real
0.030000 0.020000 0.050000 ( 0.085839)
Run Code Online (Sandbox Code Playgroud) 想象一下,在您的硬盘驱动器上,您有一个本地的公共Wi-Fi名称和密码集合,例如咖啡店中的密码.然后你进入一个前所未有的咖啡店,一个OSX应用程序将一个可用的无线网络与列表中的一个匹配,然后让你登录.这是否可以用客观的c?
如果我有一个 DailyCount 表来跟踪用户活动,如下所示:
occurred_at | Sat, 04 Aug 2018
user_id | 1
occurred_at | Sat, 04 Aug 2018
user_id | 2
occurred_at | Fri, 03 Aug 2018
user_id | 1
Run Code Online (Sandbox Code Playgroud)
如果我使用 groupdate,我可以进行如下查询:
DailyCount.group_by_period('week', :occurred_at).count
Run Code Online (Sandbox Code Playgroud)
我会得到如下结果:
Sun, July 29 2018=>3
Run Code Online (Sandbox Code Playgroud)
但我想让用户在那个星期只计算一次。有没有办法使用 groupdate gem 或不使用 datetrunc 来做到这一点?
我已经通过我在网上找到的脚本把它放在一起,但是我不确定为什么我的puts命令没有执行系统命令?它只是在未经执行的终端中.当我尝试系统("rspec规范")时,它工作但我无法捕获输出.
def run(cmd)
`#{cmd}`
end
def run_spec_files
system('clear')
result = "rspec spec"
puts result
growl(result)
end
def growl(message)
growlnotify = `which growlnotify`.chomp
unless growlnotify.empty?
title = "Test Results"
options = "-w -n Watchr -m '#{message}' '#{title}'"
run("#{growlnotify} #{options} &")
end
end
watch( 'lib/(.*)\.rb' ) { run_spec_files }
Run Code Online (Sandbox Code Playgroud) 这是包含我的绑定的.haml代码.我删除了不相关的绑定.
#date-extension
.filter-extension-container
.filter-extension-button
.button-close
#hand-graph-container{"data-bind" => "with:dateGraph"}
#x-axis
#hand-graph{"data-bind" => "foreach: {data:graphData}"}
%div{"data-bind" => "interactiveBar: $data"}
Run Code Online (Sandbox Code Playgroud)
我有一个自定义绑定的开头,就像这样.
ko.bindingHandlers.interactiveBar = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
debugger;
},
update: function(element, valueAccessor, allBindingsAccessor, viewModel) {
}
};
Run Code Online (Sandbox Code Playgroud)
但是当我查看viewModel时,它等于valueAccessor并且只是我传入的数据对象.我想访问dateGraph viewModel,并且应该能够访问它,因为我使用了"with: graphData"根据文档.
这是一个普遍的问题,但我喜欢一些反馈.我是MVVC范例的新手,我发现它非常适合我的SPA,90%左右用于渲染不同形式的数据(IE很少用户操纵数据).
但是我对在模型和模型视图之间放置格式或"清理"数据的位置感到有些困惑.我的一般感觉是我的模型视图应该只有关于更新视图的knockout或jquery特定代码.但是某些格式化似乎有点过于特定于视图而无法进入模型.例如,如果我只是更改字符串以使它们更"用户友好",您会将其放在模型或视图模型中吗?我觉得这个模型的以用户为中心/以页面为中心的知识太多了,但对于视图模型却有太多的领域知识.
我知道没有严格的规则,但只是想知道这样的情况最好的指导方针.
ruby ×6
javascript ×2
knockout.js ×2
objective-c ×2
activerecord ×1
cocoa ×1
linux ×1
macos ×1
networking ×1
redis ×1