小编yar*_*aru的帖子

为什么带有无效参数的范围有时不会导致参数错误?

以下代码导致参数错误:

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)

并且在范围中使用不同类型的类:TrueClassFalseClass.但是,以下代码不会引发错误.这是为什么?不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)

ruby exception range argument-error ruby-1.9.3

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

如何取消上传到Amazon S3的文件?

我添加了通过Dropbox Chooser将文件从Dropbox上传到我的网站的功能.一切正常,除了一件事 - 我不知道如何Cancel正确实现功能.它应该以这种方式工作 - 当您单击时Cancel- 应该从UI中删除相应的文件面板,并且应该停止从Dropbox上传.

当用户单击Choose from Dropbox并选择文件并单击SubmitAjax向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请求后立即执行.我对这一切感到有些困惑.你会如何解决这个问题?谢谢.

http://i61.tinypic.com/am9p8n.png

product_form.html.erb

$.ajax({

  // Cancel file uploading on client side via jqXHR.abort()
  // It's quite useless …
Run Code Online (Sandbox Code Playgroud)

ajax jquery ruby-on-rails amazon-s3 paperclip

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

如何延迟显示Game Center的弹出窗口?

我已将游戏中心(GC)整合到我的游戏中.它的效果非常好,除了恼人的消息,它可以在激烈的动作中弹出,需要玩家100%的注意力:

"无法连接到Game Center服务器.取消/重试?"

我不介意这个消息,但信息不是那么迫切,必须立即显示.我希望在用户导航到主菜单或其他某个点后显示它.有没有办法实现它?

iphone objective-c ios game-center

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

如何将参数传递给ActiveModel :: ArraySerializer?

我需要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)

active-model-serializers ruby-on-rails-4

6
推荐指数
2
解决办法
3964
查看次数

如何使用CSS在列表项之间创建垂直线?

我指的是这些行: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)

html css html5 css3

6
推荐指数
2
解决办法
9425
查看次数

为什么console.log显示不正确的对象值?

在我介绍这些数字之前,我不明白为什么包含的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)

javascript google-chrome console.log

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

为什么在外部函数之前调用内部函数?

在下面的代码示例中,输出将是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 function

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