我在安装捆绑包时遇到这些错误:
? 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) 我正在尝试使用以下脚本从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)
我不确定这里有什么问题,任何帮助都将是很大的。
我在弄清楚我做错了什么时遇到了一些困难.我的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.我在这里做错了什么想法?
我认为这是一个非常简单的问题,但我被困住了。
我正在尝试编写一个脚本来查找第一个目录,然后检查第二个目录以查看是否有匹配的文件。如果文件匹配,我需要将文件从第二个目录复制到第三个目录,前提是它们尚不存在于第三个目录中。
这是我迄今为止所拥有的内容的副本。该代码仍然会覆盖第三个目录中的文件,即使它们已经存在。我究竟做错了什么?
谢谢!
#!/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) 我有一个来自twitter gem的 Tweet 对象,名为@tweet.
我能够做到:
\n\n@tweet.created_at --> `@tweet.created_at.class` outputs `Time`\nRun Code Online (Sandbox Code Playgroud)\n\n但是,我想更改 的时区created_at,所以我尝试了:
@tweet.created_at.utc\nRun Code Online (Sandbox Code Playgroud)\n\n并得到:
\n\ncan\'t modify frozen Time\nRun Code Online (Sandbox Code Playgroud)\n\n我如何从当前的 UTC\xe2\x88\x9208:00 更改created_at为 CET 时间?
我有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带来一些错误?
我使用的是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来管理我的依赖项.
我在做一些明显不对的事吗?
问候,
标记
我明白了什么.blank?,.nil?和.empty?现在一样.
我在想我为什么不全部更换.nil?,并.empty?要.blank?对犯错误少的风险.例如,if current_user.blank?
是否有性能问题的.blank?方法?是慢还是消耗更多内存?
如果是的话,有多糟糕?字符串与符号一样糟糕?
提前致谢.
我有的是:
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) 所以我已经阅读了关于如何阻止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) 如何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)
主要约束在于,可以从类,模块或实例中的任何位置评估代码字外壳。因此,它将是普遍的。
错误发生在第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)