草庐IT

ruby-on-rails - 跳过状态机方法的所有验证

当我的预订模型通过rake任务在状态机上转换时,我试图找出如何跳过对ActiveRecord对象的特定实例的验证。我想在reservation.close时跳过所有验证!叫做。希望调用reservation.close!(:validate=>false)之类的东西。仅供引用,我们正在使用https://github.com/pluginaweek/state_machine用于状态机。这是我的预订模型的示例。classReservation["requested","negotiating","approved"])}state_machine:initial=>'requested

ruby - 是否可以在不实际发送或读取数据的情况下查明 ruby​​ 套接字是否处于 ESTABLISHED 或 CLOSE_WAIT 状态?

s=Socket.new(Socket::AF_INET,Socket::SOCK_STREAM,0)s.connect(Socket.pack_sockaddr_in('port','hostname'))ssl=OpenSSL::SSL::SSLSocket.new(s,sslcert)ssl.connect从这里开始,如果ssl连接和底层套接字仍然是ESTABLISHED,或者它是否在默认值7200之后进入CLOSE_WAIT,我想检查一个线程几秒钟甚至更糟的是在实际上不需要.write()或.read()的情况下关闭。是用select()、IO.select()还是其他方法完成

Ruby 元编程问题

我正在查看Ruby日志记录库Logging.logger方法并从sourceatgithub提出问题与这段代码有关:logger=::Logging::Logger.new(name)logger.add_appendersappenderlogger.additive=falseclass我知道类 最佳答案 这实际上删除了方法(当它实际被执行时)。这是确保close不会被调用两次的保障措施。看起来好像有嵌套的“class 关于Ruby元编程问题,我们在StackOverflow上找到一

Ruby:没有类的 'new'

我对Ruby的理解是“new”关键字总是与类名结合使用以创建类的新实例。在下面的代码中,可在https://gist.github.com/e9c0da1a6e92dd12cbc7找到,这是作为Ruby新手编程挑战赛的解决方案提交的,作者在没有实例化类的情况下使用了“new”关键字三次。在一种情况下,new(0,0)被分配给常量CLOSED。在另一种情况下,new(open,close)是函数的返回值。为什么要这样做?以这种方式使用时,"new"在做什么?它在创造什么?classOpenHoursattr_reader:open,:closedefinitialize(open,clo

ruby-on-rails - 是什么导致了这个 rails ioerror closed stream?

我有一个Rails应用程序,在开发模式下运行(使用sqlite数据库)。该应用程序的目的是允许用户通过Java客户端上传文件。如果用户要上传一个文件夹,会递归上传里面的所有文件。如果用户要上传文件,文件将正常上传。这是我收到的错误:IOErrorinUploadedFilesController#newclosedstream这是应用程序跟踪:/usr/lib/ruby/1.8/tempfile.rb:167:in`close'/usr/lib/ruby/1.8/tempfile.rb:167:in`callback'/var/lib/gems/1.8/gems/activesuppo

ruby - 尝试将 Ruby 连接到 SQL 服务器时出现 "Closed connection error"

这是我用来连接到SQLServer2012Express的代码。我的文件名为Connect.rb。require"rubygems"require"tiny_tds"client=TinyTds::Client.new(:username=>'sa',:password=>'sapassword',:dataserver=>'localhost\SQLEXPRESS',:database=>'ContactsDB')result=client.execute("SELECT*FROM[Contacts]")当我运行代码时,出现以下错误:in'execute':closedconnect

ruby-on-rails - cucumber 测试失败,返回 `stream closed (IOError)`

我们目前正在将我们的Rails应用程序升级到Rails4。在3.2中,我们的Cucumber(1.3.17)测试运行良好(如果可悲地缓慢),使用Capybara(2.4.4)、Poltergeist(1.5.1)和PhantomJS(1.9.8)引擎盖下。但是在4.0.12和4.1.8中,我们在运行中的随机点得到一个streamclosed(IOError):streamclosed(IOError)/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/fo

ruby - Errno::EPIPE:引发破损管道异常

if@blockrd,wr=IO.pipe@pid=forkdo$0="ForkedchildfromPage#{@path}"rd.closeresult=@block.call(@resp.body)beginwr.writeMarshal.dump(result)endwr.close这是与fork共享管道的非常标准的方法,但是一旦rd.close被调用,它就会断开管道供wr使用。直到那条线,管道才能正常工作(我用Pry逐行运行它)。据我所知,关闭fork内的读取器以阻止它干扰发送EOF是一种很好的做法(我不知道为什么会这样,我只知道这是做法)。这是我调用到生产应用程序中的库的一

ruby - 如果运行了 tls_start,EventMachine 会在 close_connection 上发出 close_notify 吗?

我正在尝试编写一个基于EventMachine的简单FTPS服务器。控制socket工作正常。当使用数据套接字进行数据传输时,似乎一切正常(TLS握手成功完成并接收到数据),但随后我收到一条错误消息。这是我在Filezilla中得到的:Command:LISTResponse:150OpeningASCIImodedataconnectionforfilelistTrace:CFtpControlSocket::TransferParseResponse()Trace:code=1Trace:state=4Trace:CFtpControlSocket::SendNextCommand

ruby-on-rails - Rails Resque 工作人员因 PGError : server closed the connection unexpectedly 失败

我在Ubuntu9.10、Rails2.3.4、ruby-ee2010.01、PostgreSQL8.4.2上有站点运行rails应用程序和在生产模式下运行的resqueworkerWorkers不断报错:PGError:serverclosedtheconnectionunexpectedly.我最好的猜测是masterresque进程建立了与db的连接(例如,authlogic在使用User.acts_as_authentic时会这样做),同时加载Rails应用程序类,并且该连接在fork()ed进程(退出时?)中被破坏,所以下一个fork的child会得到一种splinter的全