草庐IT

my-files

全部标签

ruby - `File::exist?` 和 `File::exists?` 之间的区别

关于ruby-doc,File::exist?和File::exists?的文档条目以不同的语义重复:一个条目说returnstrueiffile_name是一个目录;另一个说如果file_name是一个文件,则返回true。我认为这两个条目都不正确。这两种方法似乎都在file.c中实现使用rb_file_exist_p,如果传递的值是一个IO,它似乎会尝试调用fstat(),如果它是一个字符串,则似乎会尝试调用stat().fstat()和stat()都返回0成功和-1错误,这是通过返回到rb_file_exist_p,并转为bool结果。在我看来有两种方法可以使代码更容易阅读;没有

ruby-on-rails - "No such file or directory @ rb_sysopen"使用 OpenURI

我最近在使用OpenURI时遇到了问题。每个open方法都会导致以下错误:"Nosuchfileordirectory@rb_sysopen".我的代码如下所示:data=open("http://google.ca/")我在将gem'nokogiri'添加到我的Gemfile并运行bundleinstall后不久就注意到了这个错误,尽管我不知道是否或这不是导致问题的原因,并且此后删除了该条目,对问题没有任何积极影响。任何帮助将不胜感激。 最佳答案 尝试在你的代码前写上require'open-uri'。

ruby-on-rails - 运行 Rspec 时出现 "No such file to load"错误

MacOS10.4rspec(1.1.11,1.1.4,1.1.3,0.5.15)rspec-rails(1.1.11)rspec_generator(0.5.15)rails2.2.2ruby1.8.6(2007-03-13patchlevel0)[universal-darwin8.0]创建了一个新项目...$railsmyproject将rspec安装到项目中...$script/generaterspec生成资源...$script/generaterspec_scaffoldmyresourcename:stringdescription:text试图运行规范...$rake

ruby - __LINE__ 和 __FILE__ 常量在 Ruby 中是如何实现的?

似乎__FILE__和__LINE__常量会随着当前文件和正在执行的行号动态更新,我想知道Ruby中的行为是如何实现的?源码我已经grep过了,但是__LINE__和__FILE__出现的杂音太多了,不知道有没有人能帮我指出源码并提供了解其行为的线索。用Rubinis或MRI解释都可以。 最佳答案 __FILE__和__LINE__都被文字替换了directlyintheparser:casekeyword__FILE__:returnNEW_STR(rb_external_str_new_with_enc(ruby_sourcef

ruby-on-rails - 验证失败 : Upload file has an extension that does not match its contents

我正在使用回形针gem上传文件。我的回形针gem版本是paperclip-4.1.1。上传文件时抛出Validationfailed:Uploadfilehasanextensionthatdoesnotmatchitscontents.我正在尝试上传xlsx文件。而且我已经在模型content_type中提到了这一点。validates_attachment_content_type:upload_file,:content_type=>%w(application/mswordapplication/vnd.ms-officeapplication/vnd.ms-excelappl

ruby-on-rails - 带@global gem 的 Ruby/RVM - bundle 运行失败,显示 `require' : cannot load such file — bundler (LoadError)

我学习了1个月的linux。当我尝试从MigratingfromMySQLtoPostgresonHeroku开始执行所有步骤时我遇到无法处理的错误。当我尝试从源代码安装mysqltopostgresgem时:$gitclonehttps://github.com/maxlapshin/mysql2postgres.git$cdmysql2postgres$bundleinstall$gembuildmysqltopostgres.gemspec$sudogeminstallmysqltopostgres-0.2.20.gem我在$bundleinstall上有一个错误:/home/f

ruby - 了解 [ClassOne, ClassTwo].each(& :my_method)

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Whatdoesmap(&:name)meaninRuby?我在观看railscast时看到了这段代码。[Category,Product].(&:delete_all)关于清除数据库。我在IRC中询问了线路,并被告知(&:delete_all)是的捷径{|model|model.delete_all}我用下面的测试了这个classClassOnedefclass_methodputs1endendclassClassTwodefclass_methodputs2endend[ClassOne,ClassTw

ruby - Rspec——需要 stub File.open 在另一个文件中被调用

在我的测试中,我使用一些参数初始化了一个名为Package的新类。在这个类的初始化中,我打开了一个文件,该文件在我的远程机器上可用,但在本地通常不存在。我想知道如何在我的测试中stub该方法。我正在使用rspec和mocha。我试过类似的东西:File.stubs(:open).with(:file).returns(File.open("#{package_root}/test_files/test.yml"))在我的测试中初始化Package之前,我有这一行。我遇到了这个错误:unexpectedinvocation:File.open('package/test_files/te

ruby-on-rails - ruby rails : no such file to load -- openssl on RedHat Linux Enterprise

我正在尝试执行“rakedb:migrate”并收到错误消息“没有要加载的文件--openssl”。“openssl”和“openssl-devel”包都已安装。Debian或Ubuntu上的其他人似乎能够通过安装“libopenssl-ruby”来摆脱这种情况,这不适用于RedHat。有没有人遇到过这个问题并有解决方案? 最佳答案 升级到8.10后,我在Ubuntu上遇到了这个问题。Ubuntu的解决方案是sudoapt-get安装libopenssl-ruby 关于ruby-on-r

ruby-on-rails - 创建新的 Rails 3 项目时出错 : `require' : cannot load such file -- openssl (LoadError)

当我尝试创建一个新项目($railsnewfirst_app)时,它在创建目录结构后出现以下错误。......createvendor/plugins/.gitkeeprunbundleinstall/home/amit/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in`require':cannotloadsuchfile--openssl(LoadError)from/home/amit/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site