标签: ruby

如何在rails上的ruby中使用AWS-SDK gem列出s3文件夹中的所有文件

我想显示s3文件夹中所有文件的列表,以便我可以获取所有上次修改日期,以便我可以确定哪些文件已被更改.

我尝试使用objects.with_prefix('Folder1')它给我一个完整的列表,但也包含Folder1.1键

我不知道我是否需要使用分隔符,但我找不到任何在aws sdk中如何使用分隔符的方法.

非常感谢提前!

我正在使用'aws-sdk'宝石

这是我的桶结构-Folder1 -File1 -File2 -Folder.1.1

这是我的代码

bucket = s3.buckets[bucket_name]
data = bucket.objects.with_prefix('Folder1/')
data.each do |object|
    puts "#{object.key}\t#{object.last_modified}";
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails amazon-s3

32
推荐指数
4
解决办法
2万
查看次数

从x日期到结束日期,从几天开始迭代

我需要从2013年1月1日开始,并为每个日期"做一些事情",从而为每个日期生成一个JSON文件.

我已经为一个日期制定了"做一些事情"部分,但是我很难从一个约会开始并循环到另一个结束日期.

ruby json date

31
推荐指数
2
解决办法
2万
查看次数

如何将Rake任务添加到默认的Rake任务?

不知怎的,Rspec和Cucumber正在将它变成我的默认rake任务(这很好,因为我想要它们).但我已尝试将其他任务添加到默认任务,但它没有任何效果.

将任务添加到默认rake任务的正确方法是什么?

ruby rake

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

我如何"期待"引发RSpec异常的事情?

我有一个方法在Cat模型上执行一些操作,如果输入错误引发异常:

context "hungry cat" do
  it { expect { eat(what: nil) }.to raise_error } 
end
Run Code Online (Sandbox Code Playgroud)

我想要做的是检查这种方法是否会改变猫的状态,如下所示:

context "hungry cat" do
  it { expect { eat(what: nil) }.to raise_error } 
  it { expect { eat(what: nil) }.not_to change(cat, :status) } 
end
Run Code Online (Sandbox Code Playgroud)

问题是,既然eat(what: nil)会引发异常,那么it无论如何都会失败.那么,是否可以忽略异常并检查某些条件?

我知道可以这样做:

it do 
  expect do
    begin
      eat(what: nil)
    rescue
    end
  end.not_to change(cat, :status)
end
Run Code Online (Sandbox Code Playgroud)

但这太难看了.

ruby testing unit-testing rspec

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

如何在Sinatra中解析一次JSON请求体并将其暴露给所有路由?

我正在编写一个API,它接收一个JSON有效负载作为请求主体.

为了得到它,我正在做这样的事情:

post '/doSomething' do
    request.body.rewind
    request_payload = JSON.parse request.body.read

    #do something with request_payload
    body request_payload['someKey']
end
Run Code Online (Sandbox Code Playgroud)

有什么方法可以抽象出来,这样我就不需要为每条路线做这件事了?我的一些路由比这更复杂,因此使用这种方法,request.body将被重新读取并重新分析每个路由,我想避免.

有没有办法让request_payload神奇地可用于路由?像这样:

post '/doSomething' do
    #do something with request_payload, it's already parsed and available
    body request_payload['someKey']
end
Run Code Online (Sandbox Code Playgroud)

ruby rack sinatra

31
推荐指数
3
解决办法
3万
查看次数

link_to,redirect_to和render之间有什么区别?

我感到困惑之间的主要区别(S) link_to,redirect_torender在轨道上.任何人都可以请解释.

ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

31
推荐指数
2
解决办法
2万
查看次数

Gemfile.lock写错误,权限?

我不久前创建了一个Rails模型"模型",现在我正在尝试运行服务器.之后bundle install,我得到:

尝试写入Gemfile.lock时出错.您可能需要在路径中允许对文件的写权限:/home/thiago/model/Gemfile.lock

试图rails s看看会发生什么,并:

/home/thiago/.rvm/gems/ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler/definition.rb:235:in `rescue in lock': There was an error while trying to write to Gemfile.lock. It is likely that  (Bundler::InstallError)
you need to allow write permissions for the file at path: 
/home/thiago/model/Gemfile.lock
  from /home/thiago/.rvm/gems/ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler/definition.rb:220:in `lock'
  from /home/thiago/.rvm/gems/ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler/environment.rb:34:in `lock'
  from /home/thiago/.rvm/gems/ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler/runtime.rb:43:in `setup'
  from /home/thiago/.rvm/gems/ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler.rb:120:in `setup'
  from /home/thiago/.rvm/gems/ruby-1.9.3-p429@global/gems/rubygems-bundler-1.1.1/lib/rubygems-bundler/noexec.rb:79:in `setup'
  from /home/thiago/.rvm/gems/ruby-1.9.3-p429@global/gems/rubygems-bundler-1.1.1/lib/rubygems-bundler/noexec.rb:91:in `'
  from /home/thiago/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:110:in `require'
  from /home/thiago/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:110:in `rescue in require'
  from /home/thiago/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:35:in `require'
  from /home/thiago/.rvm/gems/ruby-1.9.3-p429/bin/ruby_noexec_wrapper:9:in `'

我可以设置Gemfile.lock的权限,以便捆绑和运行服务器吗?

$ ls -a -l
total 80 …

ruby linux bundler

31
推荐指数
2
解决办法
3万
查看次数

在拆分Ruby字符串时如何保留分隔符?

我有这样的文字:

content = "Do you like to code? How I love to code! I'm always coding." 
Run Code Online (Sandbox Code Playgroud)

我试图将它拆分为?或者.或者!:

content.split(/[?.!]/)
Run Code Online (Sandbox Code Playgroud)

当我打印出结果时,标点符号分隔符丢失了.

你喜欢编码吗?

我多么喜欢编码

我总是在编码

我怎样才能保留标点符号?

ruby

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

Ruby的.()运算符是如何工作的?

我最近遇到了一些使用方法调用的代码,该方法调用由格式组成,但object.(arg1, arg2) 没有很好地解释它是如何工作的.请参阅以下示例代码:

class TestServiceObject
  def call
    'method'
  end
end

TestServiceObject.new.()
# => 'method'
Run Code Online (Sandbox Code Playgroud)

这种速记的术语是什么?

ruby methods syntax service-object

31
推荐指数
3
解决办法
3811
查看次数

Javascript相当于Rails的try方法

在Rails中我可以这样做:

 x = user.try(:name)
Run Code Online (Sandbox Code Playgroud)

nil如果usernilelse,则此方法返回user.name.这name是在user对象上定义的方法.

我知道它可以if..then..else在Javascript中使用但是有一个等效的紧凑方法在Javascript中做同样的事情吗?

谷歌搜索指向Javascript的try命令,这不是我要找的.

javascript ruby ruby-on-rails

31
推荐指数
3
解决办法
7270
查看次数