小编Sea*_*ary的帖子

更快的s3桶重复

我一直试图找到一个比s3cmd更好的复制桶的命令行工具. s3cmd可以复制存储桶而无需下载和上传每个文件.我通常使用s3cmd复制存储桶的命令是:

s3cmd cp -r --acl-public s3://bucket1 s3://bucket2
Run Code Online (Sandbox Code Playgroud)

这有效,但它非常慢,因为它一次通过API复制每个文件.如果s3cmd能以并行模式运行,我会非常高兴.

是否有其他选项可用作命令行工具或人们用来复制比速度更快的存储桶的代码s3cmd?

编辑:看起来像s3cmd-modification正是我正在寻找的.太糟糕了它不起作用.还有其他选择吗?

amazon-s3 amazon-web-services

88
推荐指数
5
解决办法
6万
查看次数

ActiveRecord查找现有表索引

我正在为我正在编写的插件编写一个迁移生成器,我需要能够找到表中的唯一索引,以便我可以修改现有的唯一索引以成为复合唯一索引.我一直试图找到一种方法来访问表与ActiveRecord的索引.我只能找到ActiveRecord :: ConnectionAdapters :: PostgreSQLAdapter :: indexes方法,但不幸的是,这只适用于PosgreSQLAdapter.我需要能够支持其他主要数据库.

我首先使用schema.rb文件来查找索引,这首先起作用,但我很快意识到这是一个糟糕的策略.

我想如果ActiveRecord没有提供能够为多个数据库适配器执行此操作的方法,我可能能够编写特定于适配器的查询以从表中检索索引信息.如果我需要采用这种方法,那么确定正在使用的适配器的好方法是什么?

如果有人知道如何让ActiveRecord列出理想的表索引信息.

sql database activerecord ruby-on-rails

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

Spork.prefork正在加载app/models/*

我无法弄清楚如何让spork不加载我的所有app模型.我的模型的测试变化大大减慢,因为我无法使用spork来帮助.这是我在调试spork正在加载时得到的结果:

    - Spork Diagnosis -
    -- Summary --
    app/models/account.rb
    app/models/admin.rb
    app/models/affiliate.rb
    app/models/app.rb
    app/models/application_server.rb
    app/models/domain_record.rb
    app/models/domain_zone.rb
    app/models/event.rb
    app/models/oid.rb
    app/models/user.rb
    config/application.rb
    config/boot.rb
    config/environment.rb
    config/environments/test.rb
    config/initializers/api_conversions.rb
    config/initializers/backtrace_silencers.rb
    config/initializers/compass.rb
    config/initializers/devise.rb
    config/initializers/hoptoad.rb
    config/initializers/inflections.rb
    config/initializers/mime_types.rb
    config/initializers/rspec_generator.rb
    config/initializers/secret_token.rb
    config/initializers/session_store.rb
    config/routes.rb
    lib/application_server_api.rb
    lib/oid_helper.rb
    lib/soa_record.rb
    spec/spec_helper.rb



    -- Detail --



    --- app/models/account.rb ---
    /Users/sean/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `block in require'
    /Users/sean/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:227:in `load_dependency'
    /Users/sean/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `require'
    /Users/sean/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:346:in `require_or_load'
    /Users/sean/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:300:in `depend_on'
    /Users/sean/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:216:in `require_dependency'
    /Users/sean/.rvm/gems/ruby-1.9.2-p136/gems/mongoid-2.0.0.rc.7/lib/rails/mongoid.rb:54:in `load_model'
    /Users/sean/.rvm/gems/ruby-1.9.2-p136/gems/mongoid-2.0.0.rc.7/lib/rails/mongoid.rb:17:in `block (2 levels) in load_models'
    /Users/sean/.rvm/gems/ruby-1.9.2-p136/gems/mongoid-2.0.0.rc.7/lib/rails/mongoid.rb:16:in `each'
    /Users/sean/.rvm/gems/ruby-1.9.2-p136/gems/mongoid-2.0.0.rc.7/lib/rails/mongoid.rb:16:in `block in load_models'
    /Users/sean/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/paths.rb:102:in `block in each'
    /Users/sean/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/paths.rb:102:in `each'
    /Users/sean/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/paths.rb:102:in `each'
    /Users/sean/.rvm/gems/ruby-1.9.2-p136/gems/mongoid-2.0.0.rc.7/lib/rails/mongoid.rb:15:in …

ruby rspec spork rspec2

13
推荐指数
3
解决办法
5368
查看次数

Snow Leopard + Ruby 1.9.1 + MySQL Gem =巨大的问题

我尝试了大约3-4个小时试图在雪豹上安装ruby 1.9.1的mysql gem.在我升级到雪豹之前,mysql gem曾经在1.9.1上运行得很好.我从我的机器上卸载了MySQL服务器和gem.然后我下载并安装:mysql-5.1.37-osx10.5-x86_64.dmg.我已经断言我安装的这个新版本是作为64位应用程序运行的.

我卸载了mysql gem.当我尝试使用此命令安装gem时:

env ARCHFLAGS="-arch x86_64" gem install mysql --verbose -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

我收到了这个错误:

GET 304 Not Modified: http://gems.rubyforge.org/latest_specs.4.8.gz
GET 200 OK: http://gems.github.com/latest_specs.4.8.gz
Installing gem mysql-2.8.1
/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/COPYING
/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/COPYING.ja
/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/History.txt
/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/Manifest.txt
/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/README.txt
/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/Rakefile
/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/ext/mysql_api/extconf.rb
/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/ext/mysql_api/mysql.c
/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/extra/README.html
/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/extra/README_ja.html
/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/extra/tommy.css
/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/lib/mysql.rb
/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/tasks/gem.rake
/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/tasks/native.rake
/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/tasks/vendor_mysql.rake
/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/test/test_mysql.rb
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
        ERROR: Failed to build gem native extension.

/Users/sean/.rvm/ruby-1.9.1-p243/bin/ruby extconf.rb --with-mysql-config=/usr/local/mysql/bin/mysql_config
checking for mysql_ssl_set()... yes
checking for rb_str_set_len()... no
checking for rb_thread_start_timer()... no
checking for …

ruby mysql macos rubygems

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

ActiveRecord虚拟属性作为记录属性处理

我遇到了to_json没有呈现我的虚拟属性的问题

class Location < ActiveRecord::Base
    belongs_to :event
    before_create :generate_oid
    validates_associated :event

    attr_accessor :event_oid

    def event_oid
      @event_oid = event.oid
    end
end
Run Code Online (Sandbox Code Playgroud)

event_oid不是返回的数组的一部分:

Location.first.attributes

当使用to_json自动将记录属性序列化为jason时,这对我来说尤其成问题.to_json省略了我的虚拟属性.

如何将虚拟属性视为实际实例属性?

编辑:

to_json只是将我的虚拟属性视为实际属性的方法的一个例子.

activerecord ruby-on-rails

10
推荐指数
1
解决办法
5147
查看次数

Rack :: Test导致ActiveRecord :: AssociationTypeMismatch

我在运行所有规格时遇到问题.

    ActiveRecord::AssociationTypeMismatch:
       Affiliate(#2154746360) expected, got Affiliate(#2199508660)

我的模型似乎被加载了两次.

我已经将Rack :: Test要求定义"app"方法的问题隔离开了.

require 'rack/test'
include Rack::Test::Methods

# app method is needed for rack-test
def app
  Rails.application
end
Run Code Online (Sandbox Code Playgroud)

如果我注释掉Rails.application我的机架规格不起作用,但我的所有其他规格都可以正常工作.使用的Rails.application,在"应用程序"的方法引入了上述错误.

如果我单独运行我的规格,一切正常.我正在使用Spork预加载我的环境,我认为模型首先由Spork加载,然后Rails.application在我的"app"方法中调用它们时重新定义.

关于如何解决这个问题的任何想法?我不确定是否有另一种方法可以在"app"方法中设置我的Rails应用程序.

rspec ruby-on-rails spork

10
推荐指数
1
解决办法
575
查看次数

使用ES6模块和CoffeeScript的首选方式

我一直在玩ember-app-kit项目,我遇到了ES6模块和CoffeeScript关键字的一些问题.

我正在谈论的javascript的一个例子是:

import Resolver from 'resolver';
Run Code Online (Sandbox Code Playgroud)

和

export default App;
Run Code Online (Sandbox Code Playgroud)

我已经能够绕过coffeescript编译器错误,方法是使用"export"和"import"转换为'''反引号.

我对如何逃避这样的js感到困惑:

export default Ember.Component.extend({
  classNames: ['pretty-color'],
  attributeBindings: ['style'],
  style: function(){
    return 'color: ' + this.get('name') + ';';
  }.property('name')
});
Run Code Online (Sandbox Code Playgroud)

有谁知道是否有使用CoffeeScript和ES6模块的首选方式?

javascript coffeescript ember.js

10
推荐指数
1
解决办法
2872
查看次数

Ruby Net :: FTP超时线程

我试图通过使用线程FTP连接来加速多个FTP下载.我的问题是我总是有线程挂起.我正在寻找一种干净的方式来告诉FTP它需要重试ftp事务,或者至少知道FTP连接何时挂起.

在下面的代码中,我正在线程化5/6个单独的FTP连接,其中每个线程都有一个预期下载的文件列表.当脚本完成时,一些线程挂起并且无法连接.我使用变量@last_updated来表示上次成功下载的时间.如果当前时间+ 20秒超过@last_updated,则终止剩余的线程.有没有更好的办法?

threads = []
max_thread_pool = 5
running_threads = 0
Thread.abort_on_exception = true

existing_file_count = 0
files_downloaded = 0

errors = []
missing_on_the_server = []
@last_updated = Time.now

if ids.length > 0
    ids.each_slice(ids.length / max_thread_pool) do |id_set|
        threads << Thread.new(id_set) do |t_id_set|
            running_threads += 1
            thread_num = running_threads
            thread_num.freeze
            puts "making thread # #{thread_num}"
            begin
                ftp = Net::FTP.open(@remote_site)
                ftp.login(@remote_user, @remote_password)
                ftp.binary = true
                #ftp.debug_mode = true
                ftp.passive = false
            rescue
                raise "Could not establish FTP connection"
            end
            t_id_set.each …
Run Code Online (Sandbox Code Playgroud)

ruby ftp

9
推荐指数
1
解决办法
4699
查看次数

Gvim中的文字消失了

我在Ubuntu上使用GVim的字体渲染问题已经有一段时间了.在标签之间切换时,我经常会注意到问题.在标签之间切换后,有时不会渲染线条.如果我按下ctrl + l,将重绘选项卡中的内容并正确呈现缺失的行.我想我可以在我的.vimrc中编写一个函数,在我切换标签后自动运行ctrl + l,但我觉得我只会避免一个问题而不是修复底层问题.

  • Ubuntu 11.10
  • GVim 7.3
  • .vimrc中: set guifont=Inconsolata\ 12

我已经有很长一段时间使用不同版本的Ubuntu和不同的gui字体设置问题.我很想听到任何人有任何想法可以帮助我解决这个问题.

这些是我用来切换标签的功能:

function TabLeft()
   let tab_number = tabpagenr() - 1
   if tab_number == 0
      execute "tabm" tabpagenr('$') - 1
   else
      execute "tabm" tab_number - 1
   endif
endfunction

function TabRight()
   let tab_number = tabpagenr() - 1
   let last_tab_number = tabpagenr('$') - 1
   if tab_number == last_tab_number
      execute "tabm" 0
   else
      execute "tabm" tab_number + 1
   endif
endfunction

map <silent><C-S-PageUp> :execute TabRight()<CR>
map <silent><C-S-PageDown> :execute TabLeft()<CR>
Run Code Online (Sandbox Code Playgroud)

vim ubuntu

7
推荐指数
1
解决办法
2365
查看次数

Rspec>测试数据库视图

如何在Rspec中测试数据库视图?每个场景都包含在一个事务中,并且数据看起来不像是持久存储到数据库(在我的情况下是MySQL).我的视图以空结果集返回,因为事务中没有任何记录持久存在.我正在验证通过在我的规范中设置调试点并在调试规范时使用数据库客户端检查我的数据来存储记录.

我认为让我的视图工作的唯一方法是,如果我可以在场景结束之前提交事务,然后在场景完成后清除数据库.有谁知道如何实现这一目标还是有更好的方法?

谢谢

ruby database rspec ruby-on-rails

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