以下代码导致参数错误:
n = 15
(n % 4 == 0)..(n % 3 == 0)
# => bad value for range (ArgumentError)
Run Code Online (Sandbox Code Playgroud)
我认为是因为它评估为:
false..true
Run Code Online (Sandbox Code Playgroud)
并且在范围中使用不同类型的类:TrueClass和FalseClass.但是,以下代码不会引发错误.这是为什么?不Enumerable#collect抓住它?
(11..20).collect { |i| (i % 4 == 0)..(i % 3 == 0) ? i : nil }
# => no error
Run Code Online (Sandbox Code Playgroud)
稍后添加: 如果fcn返回15,则仅评估范围的前半部分
def fcn(x)
puts x
15
end
if (fcn(1) % 4 == 0)..(fcn(2) % 3 == 0); end
# => 1
Run Code Online (Sandbox Code Playgroud)
但如果我们将返回值更改为16,那么输入将是
# => 1
# => …Run Code Online (Sandbox Code Playgroud) 我添加了通过Dropbox Chooser将文件从Dropbox上传到我的网站的功能.一切正常,除了一件事 - 我不知道如何Cancel正确实现功能.它应该以这种方式工作 - 当您单击时Cancel- 应该从UI中删除相应的文件面板,并且应该停止从Dropbox上传.
当用户单击Choose from Dropbox并选择文件并单击Submit我Ajax向Rails 发起请求时,请转到方法add_file_via_dropbox.在这个方法中,我得到一个URLDropbox文件,Amazon S3通过Paperclipgem 的帮助上传到服务器.
当用户点击Cancel我想要删除部分上传到S3文件时,将在content.attachment属性中存储(成功上传后).但是当他点击时Cancel- 文件仍在上传(否则他将看不到Cancel链接),我不知道如何立即删除它.
我的另一个想法是,我可以简单地添加cancelled属性content,然后不显示任何content这样的属性== true.但是这种方法不会让我免于浪费空间,Amazon S3所以我应该每天运行一次后台任务来删除cancelled附件.我宁愿不把它们保存S3在第一位.可能吗?我考虑过将控制器的操作移动add_file_via_dropbox到后台作业,所以我可以kill在收到cancel客户端的ajax请求后立即执行.我对这一切感到有些困惑.你会如何解决这个问题?谢谢.

product_form.html.erb
$.ajax({
// Cancel file uploading on client side via jqXHR.abort()
// It's quite useless …Run Code Online (Sandbox Code Playgroud) 我已将游戏中心(GC)整合到我的游戏中.它的效果非常好,除了恼人的消息,它可以在激烈的动作中弹出,需要玩家100%的注意力:
"无法连接到Game Center服务器.取消/重试?"
我不介意这个消息,但信息不是那么迫切,必须立即显示.我希望在用户导航到主菜单或其他某个点后显示它.有没有办法实现它?
我需要current_user_id从ItemSerializer中访问.有没有办法实现它?我很好,即使是一个肮脏的黑客:)
我知道serialization_options哈希的存在(从如何将参数传递给ActiveModel序列化程序
),但它只适用于render命令(如果我是对的),所以可以这样做:
def action
render json: @model, option_name: value
end
class ModelSerializer::ActiveModel::Serializer
def some_method
puts serialization_options[:option_name]
end
end
Run Code Online (Sandbox Code Playgroud)
但在我的情况下,我ArraySerializer用来生成render命令之外的json哈希,如下所示:
positions_results = {}
positions_results[swimlane_id][column_id] =
ActiveModel::ArraySerializer.new(@account.items,
each_serializer: ItemSerializer,
current_user_id: current_user.id) # <---- Does not work
Run Code Online (Sandbox Code Playgroud) 我指的是这些行:http://prntscr.com/d44uuk
我希望它们具有动态高度 - 所以如果我决定改变<li>元素之间的垂直距离- 它们将自动调整大小.
这是我的小提琴:https: //jsfiddle.net/v6ccgkwo/
ul {
list-style: none;
}
ul li {
margin-bottom: 40px;
}
ul li span {
border-radius: 50%;
border: 1px dashed black;
padding: 5px 10px;
margin-right: 10px;
}Run Code Online (Sandbox Code Playgroud)
<ul>
<li><span>1</span>????? ??????????????? ?? ????</li>
<li><span>2</span>?????? ?? ?????????? ???????????</li>
<li><span>3</span>????????, ????? ??? ????? ?????? ? ????????, ??????????? ????</li>
<li><span>4</span>? ?????????? ??????????? ???? ? ?????????? ????????????</li>
</ul>Run Code Online (Sandbox Code Playgroud)
在我介绍这些数字之前,我不明白为什么包含的console.log显示.定期显示正确的内部结构.有人可以解释一下Google Chrome中的这种行为/错误吗?
https://jsfiddle.net/ZSvyt/d1[100,200,300]for loopd1console.log
var container = {};
container["0"] = [10, 20, 30];
var d1 = container;
console.log('before console.log');
console.log(d1); // <--- IT DISPLAYS [100, 200, 300]. WHY?
// before for loop
console.log('before for loop');
for (var i = 0; i < d1["0"].length; i++) {
console.log(d1["0"][i]);
}
container["0"] = [100, 200, 300];
console.log('after console.log');
console.log(d1);
// after for loop
console.log('after for loop');
for (var i = 0; i < d1["0"].length; i++) {
console.log(d1["0"][i]); …Run Code Online (Sandbox Code Playgroud) 在下面的代码示例中,输出将是3 2 1.为什么不1 2 3呢?没有一个左括号符号(在a1(通话表明,该功能必须先调用?括号内的所有东西,即a2(a3(50))必须作为number参数function a1?
function a1(number) {
console.log("1");
return number;
}
function a2(number) {
console.log("2");
return number;
}
function a3(number) {
console.log("3");
return number;
}
a1(a2(a3(50)));
Run Code Online (Sandbox Code Playgroud) javascript ×2
ajax ×1
amazon-s3 ×1
console.log ×1
css ×1
css3 ×1
exception ×1
function ×1
game-center ×1
html ×1
html5 ×1
ios ×1
iphone ×1
jquery ×1
objective-c ×1
paperclip ×1
range ×1
ruby ×1
ruby-1.9.3 ×1