小编adn*_*ann的帖子

“在吗?”之间的区别 和“包含?” 在Rails中

我正在查看Rails的ActiveSupport扩展,遇到了“输入?”字样。方法。对我来说,它的外观和工作方式与“ include?”完全相同 方法,但只是相反。

([1..5]).include? 1
1.in? ([1..5])
Run Code Online (Sandbox Code Playgroud)

我一直在使用“包含?” 自从我第一次开始使用Rails以来,这种方法非常有趣,因为还有另一种方法可以做完全相同的事情。我缺少的两种方法有什么区别吗?

编辑

在任何情况下都使用“输入”吗?会比使用“包含”受益更多??因为现在,我只能想到的是“在吗?” 给“ include”一个相当无意义的方法是什么?为此目的已经存在。

ruby-on-rails activesupport

4
推荐指数
1
解决办法
1151
查看次数

Net :: SFTP连接未关闭

我有一个Ruby on Rails(Rails 3.2.14和ruby 1.9.3)应用程序,它将2个文件上传到远程SFTP服务器.SFTP代码是:

require 'net/sftp'
Rails.logger.info("Creating SFTP connection")
uri = URI.parse('sftp://'+ host)
Net::SFTP.start(uri.host,'user', :password=>'password',:port=>port) do |sftp|
    Rails.logger.info("SFTP Connection created, uploading files.")
    sftp.upload!("public/file1.txt", "./file1.txt")
    Rails.logger.info("First file uploaded.")
    sftp.upload!("file2.txt", "./file2.txt")
    Rails.logger.info("Both files uploaded, terminating connection.")
end
Rails.logger.info("Connection terminated.")
Run Code Online (Sandbox Code Playgroud)

这两个文件都正确地上传到远程服务器,但连接似乎没有关闭.当我执行此功能并分析我的控制台时,我一直收到错误,我看到"两个文件都已上传,终止连接".记录器消息正在运行,但之后没有任何内容.我试过用了

sftp.close(:handle)
sftp.close!(:handle)
#and
sftp.close_connection()
Run Code Online (Sandbox Code Playgroud)

但他们都没有工作.有关为什么会发生这种情况以及如何纠正它的任何想法?我通过单个实例Engine Yard云服务器运行它.

编辑 这是我日志中的最后几行:创建SFTP连接创建SFTP连接,上传文件.上传第一个文件.上传两个文件,终止连接.

在那之后,没什么.使用'tail -f'命令查看我的日志时,日志会上升到最后一行,并且应用程序会重定向到内部服务器错误页面.

ruby-on-rails net-sftp

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

标签 统计

ruby-on-rails ×2

activesupport ×1

net-sftp ×1