小编gri*_*ton的帖子

在迭代期间向集合添加元素

是否可以在迭代时向元素添加元素?

更具体地说,我想迭代一个集合,如果一个元素满足某个条件,我想在集合中添加一些其他元素,并确保迭代这些添加的元素.(我意识到这可能导致一个无终止的循环,但我很确定它不会在我的情况下.)

Sun 的Java教程表明这是不可能的:"请注意,这Iterator.remove是在迭代期间修改集合的唯一安全方法;如果在迭代进行过程中以任何其他方式修改基础集合,则行为未指定."

所以如果我不能用迭代器做我想做的事,你建议我做什么?

java iterator

76
推荐指数
5
解决办法
13万
查看次数

POST json到rails服务器

def create
  req = ActiveSupport::JSON.decode(request.body)
  if user = User.authenticate(req["email"], req["password"])
    session[:user_id] = user.id
    render :json => "{\"r\": \"t\"}" + req
  else
    render :json => "{\"r\": \"f\"}"
  end
end
Run Code Online (Sandbox Code Playgroud)

'create'方法在控制器中并映射到"/ login",我正在设置正确的内容类型并从我的curl客户端接受标题.我一直收到422 http状态响应.

有什么建议?

ruby post json ruby-on-rails http

25
推荐指数
1
解决办法
3万
查看次数

Erlang:为什么这会以'badarith'异常失败?

是否可以在Erlang中实现闭包?

例如,我如何从Scheme翻译此片段?

(define (make-adder n)
  (lamdba (x) (+ x n)))
Run Code Online (Sandbox Code Playgroud)

我试过以下,但我显然遗漏了一些东西.

make_adder(n) ->
    fun (x) -> x + n end.
Run Code Online (Sandbox Code Playgroud)

编译它会产生错误

Warning: this expression will fail with a 'badarith' exception
Run Code Online (Sandbox Code Playgroud)

erlang closures

16
推荐指数
1
解决办法
7167
查看次数

在ruby中创建惯用对象

在ruby中,我经常发现自己编写以下内容:

class Foo
  def initialize(bar, baz)
    @bar = bar
    @baz = baz
  end

  << more stuff >>

end
Run Code Online (Sandbox Code Playgroud)

甚至

class Foo
  attr_accessor :bar, :baz

  def initialize(bar, baz)
    @bar = bar
    @baz = baz
  end

  << more stuff >>

end
Run Code Online (Sandbox Code Playgroud)

我总是希望尽可能地减少样板 - 所以有没有更惯用的方式在ruby中创建对象?

ruby

14
推荐指数
2
解决办法
1963
查看次数

Ruby:无法解析在OS X中导出为CSV的Excel文件

我正在使用Ruby的CSV库来解析一些CSV.我有一个看似格式正确的CSV文件,我通过将Excel文件导出为CSV来创建.

然而CSV.open(filename, 'r')导致一个CSV::IllegalFormatError.

文件中没有流氓逗号或引号,也没有任何我可以看到可能导致问题的内容.

我怀疑这个问题可能与行结尾有关.我能够解析通过文本编辑器(Aquamacs)手动输入的数据.就在我尝试从Excel(OS X)导出的数据时,会出现问题.当我在vim中打开导出的CSV时,所有文本都显示在一行上,并^M显示在行之间.

从文档中,似乎可以提供open行分隔符; 但我不确定在这种情况下应该是什么.

ruby csv macos

11
推荐指数
2
解决办法
6743
查看次数

了解Python守护程序线程

我显然误解了Python Thread对象的守护进程属性的基本内容.

考虑以下:

daemonic.py

import sys, threading, time

class TestThread(threading.Thread):
    def __init__(self, daemon):
        threading.Thread.__init__(self)
        self.daemon = daemon

    def run(self):
        x = 0
        while 1:
            if self.daemon:
                print "Daemon :: %s" % x
            else:
                print "Non-Daemon :: %s" % x
            x += 1
            time.sleep(1)

if __name__ == "__main__":
    print "__main__ start"
    if sys.argv[1] == "daemonic":
        thread = TestThread(True)
    else:
        thread = TestThread(False)
    thread.start()
    time.sleep(5)
    print "__main__ stop"
Run Code Online (Sandbox Code Playgroud)

从python文档:

当没有剩下活着的非守护程序线程时,整个Python程序退出.

因此,如果我使用TestThread作为守护进程运行,我希望它在主线程完成后退出.但这不会发生:

> python daemonic.py daemonic
__main__ start
Daemon :: 0
Daemon :: …
Run Code Online (Sandbox Code Playgroud)

python

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

从1900年1月1日到Unix纪元开始的秒数

我需要报告自1900年1月1日以来的秒数.我有自Unix时代开始以来的秒数.

有人能指出我对19/1年1月1日到1970年1月1日之间秒数的确切参考吗?

time

11
推荐指数
2
解决办法
3万
查看次数

:在has_many关系上忽略了自动保存 - 我错过了什么?

我有一对班级:

class Collection < ActiveRecord::Base                                                                                                                                                                                                         
  has_many :items, autosave: true
end

class Item < ActiveRecord::Base
  belongs_to :collection
end
Run Code Online (Sandbox Code Playgroud)

来自文档:

当:autosave为true时,无论是否为新记录,都会保存所有子项:

但是当我更新Item并保存其父级时Collection,Item不会保存已升级的属性:

 > c = Collection.first
 => #<Collection id: 1, name: "collection", created_at: "2012-07-23 00:00:10", updated_at: "2012-07-23 00:00:10"> 
 > i = c.items.first
 => #<Item id: 1, collection_id: 1, name: "item1", created_at: "2012-07-23 00:00:25", updated_at: "2012-07-23 00:00:25"> 
 > i.name = 'new name'
 => "new name" 
 > c.save
 => true 
 > Collection.first.items
 => [#<Item id: 1, …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

10
推荐指数
1
解决办法
2579
查看次数

使用具有单个域名和单个IP地址的Apache为两个网站提供服务

我试图在同一个Ubuntu服务器上使用Apache来托管两个网站.我有一个IP地址,我只有一个域(解析为IP地址).所以我希望域名请求给一个网站,并请求ip地址给另一个.

我在/ etc/apache2/sites-enabled中有符号链接到两个文件,指向我的两个站点的配置.

一个包含:

<VirtualHost 1.2.3.4:80>
    ServerName 1.2.3.4
    stuff
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

而另一个包含

<VirtualHost domain.net:80>
    ServerName domain.net
    stuff
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

但是,当我启动Apache时,我收到以下消息:

[warn] VirtualHost 1.2.3.4:80 overlaps with VirtualHost domain.net:80, the first has precedence, perhaps you need a NameVirtualHost directive
Run Code Online (Sandbox Code Playgroud)

当我将浏览器指向domain.net或1.2.3.4时,我得到了我想要与ip地址相关联的网站.

如果我删除符号链接,然后将浏览器指向域名或IP地址,则会启用唯一启用的网站.(正如你所希望的那样.)

据我了解,启用站点的配置文件一次加载,包含IP地址的配置文件胜过包含域名的配置文件.警告建议查看NameVirtualHost指令,但我可以在线找到的所有帮助都是指有两个域名指向同一个IP地址的情况.

一如既往,非常感谢帮助或建议.

(对于它的价值,这些网站都是Rails应用程序,我正在使用Passenger进行部署,但我认为这不重要.)

apache

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

Rails:remote_form_for与多个submit_tags不能很好地协作

我有一个表格如下:

<% form_remote_tag :url => {:action => :wotsit} do %>
  <%= submit_tag "Foo" %>
  <%= submit_tag "Bah" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我希望提交的参数能反映出哪个按钮被点击了.但是,无论我点击哪个按钮,提交的参数都包括"commit"=>"Foo".

我究竟做错了什么?

ajax ruby-on-rails

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

标签 统计

ruby ×3

ruby-on-rails ×3

ajax ×1

apache ×1

closures ×1

csv ×1

erlang ×1

http ×1

iterator ×1

java ×1

json ×1

macos ×1

post ×1

python ×1

time ×1