使用Python中的列表,我可以使用以下代码返回它的一部分:
foo = [1,2,3,4,5,6]
bar = [10,20,30,40,50,60]
half = len(foo) / 2
foobar = foo[:half] + bar[half:]
Run Code Online (Sandbox Code Playgroud)
由于Ruby在数组中做了所有事情,我想知道是否有类似的东西.
这个Ruby代码的行为不像我期望的那样:
# create an array of hashes
sort_me = []
sort_me.push({"value"=>1, "name"=>"a"})
sort_me.push({"value"=>3, "name"=>"c"})
sort_me.push({"value"=>2, "name"=>"b"})
# sort
sort_me.sort_by { |k| k["value"]}
# same order as above!
puts sort_me
Run Code Online (Sandbox Code Playgroud)
我正在寻找按键"值"对哈希数组进行排序,但它们是未分类打印的.
我正在使用Ruby on Rails 4和rspec-rails gem 2.14.对于我的对象,我想updated_at在控制器动作运行后将当前时间与对象属性进行比较,但由于规范没有通过,我遇到了麻烦.也就是说,鉴于以下是规范代码:
it "updates updated_at attribute" do
Timecop.freeze
patch :update
@article.reload
expect(@article.updated_at).to eq(Time.now)
end
Run Code Online (Sandbox Code Playgroud)
当我运行上面的规范时,我收到以下错误:
Failure/Error: expect(@article.updated_at).to eq(Time.now)
expected: 2013-12-05 14:42:20 UTC
got: Thu, 05 Dec 2013 08:42:20 CST -06:00
(compared using ==)
Run Code Online (Sandbox Code Playgroud)
如何使规范通过?
注意:我还尝试了以下(注意utc添加):
it "updates updated_at attribute" do
Timecop.freeze
patch :update
@article.reload
expect(@article.updated_at.utc).to eq(Time.now)
end
Run Code Online (Sandbox Code Playgroud)
但规格仍然没有通过(注意"得到"的价值差异):
Failure/Error: expect(@article.updated_at.utc).to eq(Time.now)
expected: 2013-12-05 14:42:20 UTC
got: 2013-12-05 14:42:20 UTC
(compared using ==)
Run Code Online (Sandbox Code Playgroud) AWS::S3::Errors::InvalidRequest The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.当我尝试将文件上传到新法兰克福地区的S3存储桶时出错.一切都适用于US Standard地区.
脚本:
backup_file = '/media/db-backup_for_dev/2014-10-23_02-00-07/slave_dump.sql.gz'
s3 = AWS::S3.new(
access_key_id: AMAZONS3['access_key_id'],
secret_access_key: AMAZONS3['secret_access_key']
)
s3_bucket = s3.buckets['test-frankfurt']
# Folder and file name
s3_name = "database-backups-last20days/#{File.basename(File.dirname(backup_file))}_#{File.basename(backup_file)}"
file_obj = s3_bucket.objects[s3_name]
file_obj.write(file: backup_file)
Run Code Online (Sandbox Code Playgroud)
aws-sdk(1.56.0)
怎么解决?
谢谢.
我有一个类的名称,我想创建该类的实例,以便我可以遍历该类的架构中存在的每个rails属性.
我该怎么做呢?
我正在使用Ruby on Rails,有没有办法html使用sanitize或equal方法从字符串中剥离并且只在输入标记的value属性中保留文本?
我使用rvm安装了zlib软件包和ruby 1.9.3,但是每当我尝试安装gem时它会说
cannot load such file -- zlib
我以前安装的命令是
$ rvm install 1.9.3
Run Code Online (Sandbox Code Playgroud)
$ rvm pkg install zlib
$ rvm reinstall 1.9.3 --with-readline-dir=/home/username/.rvm/usr \
--with-iconv-dir=/home/username/.rvm/usr \
--with-zlib-dir=/home/username/.rvm/usr \
--with-openssl-dir=/home/username/.rvm/usr
$ rvm use 1.9.3
$ gem install heroku
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NameError)
uninitialized constant Gem::Commands::InstallCommand
关于这个主题的所有帮助告诉我要做rvm pkg install zlib,然后重新安装红宝石--with-zlib-dir=/home/username/.rvm/usr,但这不起作用.
我正在设置一台新的Mac用于工作.我在全球安装了Grunt&Grunt CLI.然后我npm install在一个项目文件夹内部安装了所有依赖项.
到目前为止没有问题,但是一旦我尝试运行sass:dist任务,我就会收到此警告:
Warning: You need to have Ruby and Sass installed and in your PATH for
this task to work. More info:
https://github.com/gruntjs/grunt-contrib-sass Use --force
to continue.
Run Code Online (Sandbox Code Playgroud)
我的理解是我需要在更全局的层面上安装Ruby和Sass才能运行此任务.由于我还很擅长使用终端,我做了一个快速搜索,找出了什么PATH- 似乎是一些存储重要数据的系统路径(可以更改).
这是否意味着我可以简单sudo grunt install contrib-sass -g地解决这个问题?那么Ruby呢 - 我一直以为它已经安装在OS X上了?