小编Mik*_*cic的帖子

当ID包含方括号时,按ID查找DOM元素?

我有一个DOM元素,其ID类似于:

something[500]
Run Code Online (Sandbox Code Playgroud)

这是由我的Ruby on Rails应用程序构建的.我需要能够通过jQuery获取此元素,以便我可以遍历DOM以删除其父级的父级,其父级具有我之前无法访问的变量ID.

有谁知道我怎么能这样做?以下代码似乎不起作用:

alert($("#something["+id+"]").parent().parent().attr("id"));
Run Code Online (Sandbox Code Playgroud)

经过进一步检查,以下内容:

$("#something["+id+"]")
Run Code Online (Sandbox Code Playgroud)

返回一个对象,但当我在其上运行".html()"或".text()"时,结果始终为null或只是一个空字符串.

任何帮助将不胜感激.

javascript jquery dom ruby-on-rails

73
推荐指数
4
解决办法
3万
查看次数

哪个键/值存储最有前途/最稳定?

我希望开始为一些辅助项目使用一个键/值存储(主要是作为一种学习体验),但是最近出现了很多,我不知道从哪里开始.只是从记忆中列出,我可以想到:

  1. CouchDB的
  2. MongoDB的
  3. 了Riak
  4. Redis的
  5. 东京内阁
  6. 伯克利DB
  7. 卡桑德拉
  8. MemcacheDB

而且我确信在搜索工作中还有更多内容.有了所有信息,很难在所有竞争对手之间找到可靠的比较.我的标准和问题是:

  1. (最重要的)你推荐哪个,为什么
  2. 哪一个最快?
  3. 哪一个最稳定?
  4. 哪一个最容易设置和安装?
  5. 哪些具有Python和/或Ruby的绑定?

编辑:
到目前为止看起来Redis是最好的解决方案,但这只是因为我得到了一个坚实的回应(来自ardsrk).我正在寻找像他这样的更多答案,因为他们指出了我有用的定量信息的方向.使用哪个Key-Value商店,为什么

编辑2:
如果有人有CouchDB,Riak或MongoDB的经验,我很乐意听到你的经历(如果你能对它们中的几个进行比较分析,那就更是如此)

ruby python database comparison

60
推荐指数
8
解决办法
2万
查看次数

在python中替换大量字符串?

假设我有一个看起来像这样的字符串:

str = "The &yquick &cbrown &bfox &Yjumps over the &ulazy dog"
Run Code Online (Sandbox Code Playgroud)

您会注意到字符串中有很多位置,其中有一个&符号,后跟一个字符(例如"&y"和"&c").我需要用字典中的适当值替换这些字符,如下所示:

dict = {"&y":"\033[0;30m",
        "&c":"\033[0;31m",
        "&b":"\033[0;32m",
        "&Y":"\033[0;33m",
        "&u":"\033[0;34m"}
Run Code Online (Sandbox Code Playgroud)

最快的方法是什么?我可以手动找到所有的&符号,然后循环通过字典来改变它们,但这似乎很慢.做一堆正则表达式替换似乎也很慢(我的实际代码中将有一个大约30-40对的字典).

任何建议表示赞赏,谢谢.

编辑:

正如在这个问题的评论中所指出的,我的字典是在运行时之前定义的,并且在应用程序生命周期的过程中永远不会改变.它是ANSI转义序列的列表,其中将包含大约40个项目.我要比较的平均字符串长度大约为500个字符,但最多可达5000个字符(但这些字符很少见).我目前也在使用Python 2.6.

编辑#2 我接受Tor Valamos的回答是正确的,因为它不仅提供了有效的解决方案(虽然它不是最好的解决方案),而是考虑了所有其他解决方案并做了大量的工作来比较所有这些.这个答案是我在StackOverflow上遇到过的最好,最有帮助的答案之一.感谢你.

python regex string performance replace

42
推荐指数
4
解决办法
2万
查看次数

如何使用Django ManyToMany关系的"反向"?

我来自Rails背景,并且在使用Django中提供的"关联方法"时遇到了一些麻烦.我有两个模型(为了简洁起见已经简化),如下所示:

class User(models.Model):
    username = models.CharField(max_length=100, unique=True)
    companies = models.ManyToManyField('Company', blank=True)

class Company(models.Model):
    name = models.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)

根据Django文档:

"具有ManyToManyField的模型无关紧要,但您只应将其放在其中一个模型中 - 而不是两者."

所以我理解,如果我有一个用户的实例,称为用户,我可以这样做:

user.companies
Run Code Online (Sandbox Code Playgroud)

我的问题是如何反过来?如何获取属于公司实例的所有用户,假设公司:

company.users # This doesn't work!
Run Code Online (Sandbox Code Playgroud)

这样做的惯例是什么?我读过的文档并没有真正涵盖这一点.我需要关联工作两种方式,所以我不能简单地将它从一个模型移动到另一个模型.

django django-models

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

用jQuery获取"onclick"的值?

是否可以通过jQuery获取A标签的onClick属性的当前值?

例如,我有:

<a href="http://www.google.com" id="google" onclick="alert('hello')">Click</a>
Run Code Online (Sandbox Code Playgroud)

我想得到onclick代码,以便我可以存储它供以后使用(因为我将稍微更改onclick事件).

有可能做这样的事情:

var link_click = $("#google").onclick;
Run Code Online (Sandbox Code Playgroud)

要么:

var link_click = $("#google").click;
Run Code Online (Sandbox Code Playgroud)

所以,稍后在我的代码中,我可以重新应用该代码,或者必要时使用eval()它?

javascript jquery javascript-events

28
推荐指数
4
解决办法
10万
查看次数

你如何在Rails应用程序中"生成"一个EventMachine?

我有一个Rails应用程序,我希望为它添加某种WebSocket支持.从各种Google搜索,似乎最好的基于Ruby的WebSocket解决方案是在EventMachine上运行的em-websocket.

我想知道是否有办法将EventMachine反应器"集成"到Rails中?我在哪里放置初始化代码?这是实现这个目标的正确方法吗?

我已经看到这个回到Sinatra的例子来做一个EventMachine GET请求,但这并不是我想要的.

任何帮助表示赞赏.

ruby ruby-on-rails eventmachine websocket ruby-on-rails-3

20
推荐指数
4
解决办法
7967
查看次数

你是如何通过Python(而不是通过Twisted)运行Twisted应用程序的?

我正在通过学​​习Twisted工作,偶然发现了一些我不太确定我非常喜欢的东西 - "Twisted Command Prompt".我正在摆弄我的Windows机器上的Twisted,并尝试运行"聊天"示例:

from twisted.protocols import basic

class MyChat(basic.LineReceiver):
    def connectionMade(self):
        print "Got new client!"
        self.factory.clients.append(self)

    def connectionLost(self, reason):
        print "Lost a client!"
        self.factory.clients.remove(self)

    def lineReceived(self, line):
        print "received", repr(line)
        for c in self.factory.clients:
            c.message(line)

    def message(self, message):
        self.transport.write(message + '\n')


from twisted.internet import protocol
from twisted.application import service, internet

factory = protocol.ServerFactory()
factory.protocol = MyChat
factory.clients = []

application = service.Application("chatserver")
internet.TCPServer(1025, factory).setServiceParent(application)
Run Code Online (Sandbox Code Playgroud)

但是,要将此应用程序作为Twisted服务器运行,我必须通过"Twisted命令提示符"运行它,并使用以下命令:

twistd -y chatserver.py
Run Code Online (Sandbox Code Playgroud)

有没有办法更改代码(设置Twisted配置设置等),以便我可以通过以下方式运行它:

python chatserver.py
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索,但搜索条件似乎太模糊,无法返回任何有意义的回复.

谢谢.

python sockets networking twisted

19
推荐指数
2
解决办法
9436
查看次数

一个应用中的多个反应器(主回路)通过螺纹(或替代方式)

我已经知道了一个应用程序,我想继续学习更多关于TwistedWebSockets的知识.我正在考虑将以前编写的IRC Bot集成到Web应用程序中.据我所知,我需要三个反应器来使它工作:

  • 主反应堆:Web服务器(HTTP).这将是你的平均twisted.web应用程序.当您访问它时,您可以将IRC服务器/通道POST到连接.然后,Web服务器将与不同线程中的不同反应器通信,这是...
  • 二级反应堆:IRC Bot.这将是通过Twisted IRC客户端协议运行的IRC机器人.它会加入一个频道,每当说出某些内容时,它会将这些数据推送到另一个反应堆,在另一个线程上,这是......
  • 第三级反应堆:WebSocket服务器(WS):由于WebSockets不使用常规HTTP协议,它们需要自己的服务器(或者看起来像这样的例子.当IRC机器人收到消息时,它告诉WebSocket服务器将该消息推送到连接的客户端.

在我看来,这是有道理的.似乎有可能.有没有人有任何多个反应器在不同的线程中运行的例子,或者这是我想象的那些在扭曲的当前版本中无法完成的事情.

是否可以(或应该)进行任何架构更改以最小化反应器数量等?

谢谢你的帮助.

python events multithreading twisted reactor

19
推荐指数
2
解决办法
8139
查看次数

计算数组元素之间的差异

给定n个整数的排序数组,如下所示:

ary = [3, 5, 6, 9, 14]
Run Code Online (Sandbox Code Playgroud)

我需要计算每个元素和数组中下一个元素之间的差异.使用上面的例子,我最终得到:

[2, 1, 3, 5]
Run Code Online (Sandbox Code Playgroud)

开始数组中可能包含0,1或许多元素,我将要处理的数字将更大(我将使用纪元时间戳).我尝试过以下方法:

times = @messages.map{|m| m.created_at.to_i}
left  = times[1..times.length-1]
right = times[0..times.length-2]
differences = left.zip(right).map { |x| x[0]-x[1]}
Run Code Online (Sandbox Code Playgroud)

但我上面的解决方案既不是最优的,也不理想.任何人都可以帮我一把吗?

ruby ruby-on-rails

16
推荐指数
2
解决办法
5594
查看次数

如何使用rspec测试路径约束

我正在开发一个主要用作API的应用程序(除了一些次要视图,例如会话/注册,这将是"标准").我喜欢在Railscast#350中最终确定的方法:对API进行版本控制,然后遵循它.我的路线看起来像:

namespace :api, :defaults => {:format => 'json'} do
  scope :module => :v1, :constraints => ApiConstraints.new(:version => 1, :default => false) do
    resources :posts, :only => [:create, :show, :destroy, :index]
  end

  scope :module => :v2, :constraints => ApiConstraints.new(:version => 2, :default => true) do
    resources :posts, :only => [:create, :show, :destroy, :index]
  end
end
Run Code Online (Sandbox Code Playgroud)

在每个路径中,我的Constraint是一个新的ApiConstraints对象,它位于我的./lib文件夹中.这个类看起来像这样:

class ApiConstraints
  def initialize(options)
    @version = options[:version]
    @default = options[:default]
  end

  def matches?(req)
    @default || req.headers['Accept'].include?("application/vnd.MYAPP.v#{@version}")
  end
end
Run Code Online (Sandbox Code Playgroud)

现在,手动测试时,一切都按预期工作.在我的API中,每个版本可能有5到10个控制器,并且不希望测试API约束适用于每个单独的控制器,因为这没有意义.我正在寻找一个测试我的API约束的spec文件,但我不确定该规范的放置位置. …

ruby-on-rails constraints rails-routing ruby-on-rails-3

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