小编Мал*_*евъ的帖子

由于Bundler :: GemspecError导致bundle安装失败:无法读取gem at

我在安装捆绑包时遇到这些错误:

 ? bundle install
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...

Bundler::GemspecError: Could not read gem at /Users/liuxin/.rvm/gems/ruby-1.9.3-p547/cache/i18n-0.6.11.gem. It may be corrupted.
An error occurred while installing i18n (0.6.11), and Bundler cannot continue.
Make sure that `gem install i18n -v '0.6.11'` succeeds before bundling.

? gem install i18n -v '0.6.11'
ERROR:  Error installing i18n:
    invalid gem: package metadata is missing in /Users/liuxin/.rvm/gems/ruby-1.9.3-p547/cache/i18n-0.6.11.gem

? rvm list

rvm rubies

=* ruby-1.9.3-p547 [ x86_64 ]
   ruby-2.1.2 [ x86_64 ]
Run Code Online (Sandbox Code Playgroud)

ruby bundle rubygems ruby-on-rails rvm

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

open_http:403禁止(OpenURI :: HTTPError)

我正在尝试使用以下脚本从Google+ API中提取数据:

require 'open-uri'
require 'json'

google_api_key = 'put your google api key here'
page_id = '105672627985088123672'

data = open("https://www.googleapis.com/plus/v1/people/#{page_id}?key=#{google_api_key}").read    
obj = JSON.parse(data)

puts obj['plusOneCount'].to_i
Run Code Online (Sandbox Code Playgroud)

但是,我不断收到此错误:

/Users/xng/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/open-uri.rb:346:in `open_http': 403 Forbidden (OpenURI::HTTPError)
    from /Users/xng/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/open-uri.rb:769:in `buffer_open'
    from /Users/xng/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/open-uri.rb:203:in `block in open_loop'
    from /Users/xng/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/open-uri.rb:201:in `catch'
    from /Users/xng/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/open-uri.rb:201:in `open_loop'
    from /Users/xng/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/open-uri.rb:146:in `open_uri'
    from /Users/xng/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/open-uri.rb:671:in `open'
    from /Users/xng/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/open-uri.rb:33:in `open'
    from gplus.rb:8:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我不确定这里有什么问题,任何帮助都将是很大的。

ruby api https open-uri

5
推荐指数
0
解决办法
1932
查看次数

Ruby - NoMethodError(nil的未定义方法:NilClass):

我在弄清楚我做错了什么时遇到了一些困难.我的ActiveRecord查询正在返回nil,我认为这会导致NoMethodError被引发.

这就是我所拥有的:

@number_exclude_list = ["1234567890", "2223334545"] 
@available_number = UserNumber.where.not(:user_num => @number_exclude_list)
Run Code Online (Sandbox Code Playgroud)

返回一组空行:

=> #<ActiveRecord::Relation []>
Run Code Online (Sandbox Code Playgroud)

那么,我有:

if (@available_number.empty?)
   inform_user_empty
else
   do_my_other_function
Run Code Online (Sandbox Code Playgroud)

但是,我得到:

`NoMethodError (undefined method 'inform_user_empty' for nil:NilClass)`
Run Code Online (Sandbox Code Playgroud)

我试过了:@available_number.blank?`@available_number.nil?

我仍然得到相同的NoMethodError.我在这里做错了什么想法?

null ruby-on-rails exception nomethoderror

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

RUBY - 如果文件不存在,如何将文件复制到特定目录

我认为这是一个非常简单的问题,但我被困住了。

我正在尝试编写一个脚本来查找第一个目录,然后检查第二个目录以查看是否有匹配的文件。如果文件匹配,我需要将文件从第二个目录复制到第三个目录,前提是它们尚不存在于第三个目录中。

这是我迄今为止所拥有的内容的副本。该代码仍然会覆盖第三个目录中的文件,即使它们已经存在。我究竟做错了什么?

谢谢!

#!/usr/bin/ruby

require 'FileUtils'

library_path_1 = ARGV[0]
library_path_2 = ARGV[1]
library_path_3 = ARGV[2]

dir_1 = Dir.glob(library_path_1 + "/**/*").select{ |x| File.file? x }
dir_2 = Dir.glob(library_path_2 + "/**/*").select{ |x| File.file? x }
destination = Dir.glob(library_path_3 + "/**/*").select{ |x| File.file? x }

dir_1.each do |filename|
  dir_2.each do |path|
    destination.each do |existing_file|

      existing_file = File.basename(existing_file)

      if path.include?(File.basename(filename))
        FileUtils.cp(path, library_path_3) unless File.exists?(existing_file)
      end

    end
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby scripting copy file

5
推荐指数
1
解决办法
3180
查看次数

为什么我无法修改 Twitter gem 中冻结的时间?

我有一个来自twitter gem的 Tweet 对象,名为@tweet.

\n\n

我能够做到:

\n\n
@tweet.created_at --> `@tweet.created_at.class` outputs `Time`\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,我想更改 的时区created_at,所以我尝试了:

\n\n
@tweet.created_at.utc\n
Run Code Online (Sandbox Code Playgroud)\n\n

并得到:

\n\n
can\'t modify frozen Time\n
Run Code Online (Sandbox Code Playgroud)\n\n

我如何从当前的 UTC\xe2\x88\x9208:00 更改created_at为 CET 时间?

\n

ruby time rubygems twitter-gem

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

Rails 4 railties的可执行"rails"与rails冲突

我有rails 4,这是我的默认版本(我仍然想要它).但我喜欢在我的电脑上添加rails 3.2.在以下命令上:gem install rails -v 3.2.16

我有这个警告:

railties's executable "rails" conflicts with rails
Overwrite the executable? [yN] 
Run Code Online (Sandbox Code Playgroud)

我想知道这是否会给我的4.0.1带来一些错误?

ruby-on-rails bundler rvm ruby-on-rails-3

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

rspec:未定义的局部变量或方法`be_true'

我使用的是rspec 2.4.0和黄瓜0.6.4.我正在运行一个简单的场景(为了这个问题):

Scenario: Simple Test
When I test something
Run Code Online (Sandbox Code Playgroud)

步骤定义:

require 'rspec'
require 'rspec/expectations'

When /^I test something$/ do
  result = (1==1)
  result.should be_true
end
Run Code Online (Sandbox Code Playgroud)

当我运行这个场景时,我遇到以下问题:

 undefined local variable or method `be_true' for #<Object:0x1b3b424> (NameError)
Run Code Online (Sandbox Code Playgroud)

我也使用bundler来管理我的依赖项.

我在做一些明显不对的事吗?

问候,

标记

rspec cucumber bundler rspec2 rspec-expectations

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

我应该在性能方面使用`.blank?`吗?

我明白了什么.blank?,.nil?.empty?现在一样.

我在想我为什么不全部更换.nil?,并.empty?.blank?对犯错误少的风险.例如,if current_user.blank?

是否有性能问题.blank?方法?是还是消耗更多内存

如果是的话,有多糟糕?字符串与符号一样糟糕?

提前致谢.

ruby memory performance ruby-on-rails ruby-on-rails-4

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

在.each中使用公式后,数组中的数字不会更改

我有的是:

p(array)
array.each { |c| c=c*y**z-1 ; z=z+1  }
p(array)
Run Code Online (Sandbox Code Playgroud)

该数组是:

[35, 35, 35]
Run Code Online (Sandbox Code Playgroud)

y是36,z是一个计数器,c是数组中的值.

在我得到公式之前:

[35, 35, 35]

[formula happens]
Run Code Online (Sandbox Code Playgroud)

公式后:

[35, 35, 35]
Run Code Online (Sandbox Code Playgroud)

ruby arrays map ruby-1.8.7

0
推荐指数
1
解决办法
68
查看次数

如何阻止sudo安装宝石.最终的解决方案

所以我已经阅读了关于如何阻止sudo安装宝石的每一篇文章,其中有100个不同的答案,其中一个还没有打成黄金.有人可以一劳永逸地提供最简单,最简洁的方式来编辑和更新您的bash配置文件以重写权限并停止sudo安装gem吗?

下面只是一个例子,向您展示我每次都得到的东西.在过去的几个星期里,我一直在做所有事情,我知道这是在为这个问题提供创可贴.

LMagnotti$ gem install nokogiri

ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied @ rb_sysopen - /usr/local/lib/ruby/gems/2.3.0/gems/nokogiri-1.6.7.2/.autotest
Run Code Online (Sandbox Code Playgroud)

ruby bash rubygems rvm rbenv

0
推荐指数
1
解决办法
243
查看次数

如何在Ruby中评估`main`对象?

如何main在Ruby中了解或评估对象?

例:

$ irb
irb(main):001:0> self
=> main
irb(main):002:0> eval "self"
=> main
irb(main):003:0> eval "main"
NameError: undefined local variable or method `main' for main:Object
        from (irb):3:in `eval'
        from (irb):3:in `eval'
        from (irb):3
    from /home/malo/.rvm/rubies/ruby-1.9.3-p448/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)

主要约束在于,可以从类,模块或实例中的任何位置评估代码字外壳。因此,它将是普遍的。

ruby eval

-1
推荐指数
1
解决办法
251
查看次数

Bash:意外令牌附近的语法错误`then'

错误发生在第21行......

if [ $weight1 -gt $weight2 ];
    then echo "Weight 2 should be greater than Weight 1."
else
    if [ $weight1 -ge 20 ] && [ $weight1 -le 39 ];
        then echo "Weight 1 is bike."
    else 
        echo "Weight 1 is either bicycle, car, van or lorry."
    fi
fi
Run Code Online (Sandbox Code Playgroud)

linux bash if-statement

-1
推荐指数
1
解决办法
9560
查看次数