小编fea*_*ool的帖子

"rails generate model"挂起

我是ROR的新手.

删除rails应用程序后,如何使用相同的App名称?

以下是我执行的操作.第6步是我的问题.

1 - 环境

 - OS : Ubuntu 12.04.4
 - ruby : 2.1.1p76
 - rails : 4.1.2
 - DB : SQLite
Run Code Online (Sandbox Code Playgroud)

2 - 创建rails App:

rails new myApp
=> OK
Run Code Online (Sandbox Code Playgroud)

3 - 创建模型:

 rails generate model mytable name:string
=> OK.
Run Code Online (Sandbox Code Playgroud)

4 - 删除rails App:

 rm -rf myApp
=> OK
Run Code Online (Sandbox Code Playgroud)

5 - 重新创建rails App:

 rails new myApp
 => OK
Run Code Online (Sandbox Code Playgroud)

6 - 重新创建模型:

 rails generate model mytable name:string
=> Not OK! waiting for infinite time
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

8
推荐指数
2
解决办法
3235
查看次数

如何在Ruby中编写简单的HTTPS代理服务器?

我已经看过几个在Ruby中编写HTTP代理的例子,例如Torsten Becker的这个要点,但我如何扩展它以处理HTTPS,又称为"中间人"SSL代理?

我正在寻找一个简单的源代码框架,我可以扩展它以满足我自己的日志记录和测试需求.

更新

我已经使用了Charles,一个类似于Fiddler 的漂亮的HTTPS代理应用程序,它本质上是我想要的,除了它在一个应用程序中打包.我想写自己的,因为我有过滤和演示的特定需求.

更新II

四处乱逛,我理解术语好一点.我不是在完整的"中间人"SSL代理之后.相反,它将在我的机器上本地运行,因此我可以尊重它提供的任何SSL证书.但是,我需要查看我的请求的数据包的解密内容和响应的解密内容.

ruby ssl https proxy

6
推荐指数
2
解决办法
6512
查看次数

为什么之前:保存回调挂钩不从FactoryGirl.create()调用?

这个简单的例子使用DataMapper的before :save回调(aka hook)来递增callback_count.callback_count初始化为0,并应由回调设置为1.

通过以下方式创建TestObject时,将调用此回调:

TestObject.create()
Run Code Online (Sandbox Code Playgroud)

但是当FactoryGirl通过以下方式创建时会跳过回调:

FactoryGirl.create(:test_object)
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?[注意:我正在运行ruby 1.9.3,factory_girl 4.2.0,data_mapper 1.2.0]

详细信息如下......

DataMapper模型

# file: models/test_model.rb
class TestModel
  include DataMapper::Resource

  property :id, Serial
  property :callback_count, Integer, :default => 0

  before :save do
    self.callback_count += 1
  end
end
Run Code Online (Sandbox Code Playgroud)

FactoryGirl声明

# file: spec/factories.rb
FactoryGirl.define do
  factory :test_model do
  end
end
Run Code Online (Sandbox Code Playgroud)

RSpec测试

# file: spec/models/test_model_spec.rb
require 'spec_helper'

describe "TestModel Model" do
  it 'calls before :save using TestModel.create' do
    test_model = TestModel.create
    test_model.callback_count.should == 1
  end
  it 'fails to call …
Run Code Online (Sandbox Code Playgroud)

ruby datamapper factory-bot

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

最小的Capybara/Poltergeist测试返回空页

看来我正在回顾SO帖子中所采取的步骤: Capybara,Poltergeist和Phantomjs,并在身体上做出空洞的反应.(如果需要,请将此标记为重复,但我包含一个最小的独立测试用例和版本号.)

问题

我做了什么明显错误的事吗?我可以运行另一个可以帮助隔离问题的最小测试吗?

file:pgtest.rb
require 'rubygems'
require 'capybara'
require 'capybara/dsl'
require 'capybara/poltergeist'

module PGTest
  include Capybara::DSL
  extend self

  def test
    Capybara.register_driver :poltergeist do |app|
      Capybara::Poltergeist::Driver.new(app)
    end

    Capybara.current_driver = :poltergeist
    session = Capybara::Session.new(:poltergeist)

    visit "http://www.google.com"
    sleep 5
    puts session.html
  end
end

PGTest.test
Run Code Online (Sandbox Code Playgroud)

当按如下方式调用时,它会打印一个空页面:

$ ruby pgtest.rb
<html><head></head><body></body></html>
Run Code Online (Sandbox Code Playgroud)

环境

  • OS X 10.8.5(12F45)
  • ruby 2.0.0p247(2013-06-27)[x86_64-darwin12.4.0]
  • 幻影1.9.2
  • 水豚(2.1.0)
  • 恶作剧者(1.4.1)

绝对的幻影

值得注意的是,我可以使用phantomjs从www.google.com中提取html:

file:pjs_dump.js
var page = require('webpage').create();
page.open("http://www.google.com", function () {
    var html = page.evaluate(function () {
        return document.documentElement.outerHTML;
    });
    console.log(html);
    phantom.exit();
}); …
Run Code Online (Sandbox Code Playgroud)

ruby capybara phantomjs poltergeist

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

找不到有效的gem:证书验证失败

我正在尝试建立一个到远程服务器的ssh隧道,如下所述:从Heroku到Mysql Db的远程服务器的SSH

但我只是想下载宝石而挂断电话.我补充说:

# file: Gemfile
...
gem 'net-ssh-gateway', '~> 1.2.0'
Run Code Online (Sandbox Code Playgroud)

但是当我这样做bundle install(或者甚至只是gem install net-ssh在命令行上)时,我得到:

ERROR:  Could not find a valid gem 'net-ssh' (>= 0), here is why:
        Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/latest_specs.4.8.gz)
Run Code Online (Sandbox Code Playgroud)

根据net-ssh的README(https://github.com/net-ssh/net-ssh),我检查了我的OpenSSL绑定Ruby - 看起来没问题:

$ ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
OpenSSL 1.0.1j 15 Oct 2014
Run Code Online (Sandbox Code Playgroud)

我不确定这是否相关,但是当我尝试下载.pem文件以获得gemfile的高安全性下载时:

$ curl -O https://raw.github.com/net-ssh/net-ssh/master/gem-public_cert.pem
Run Code Online (Sandbox Code Playgroud)

...它没有下载.pem文件,直接访问该URL会导致"未找到".

其他信息:

$ rake about
About your …
Run Code Online (Sandbox Code Playgroud)

ruby ssh openssl ruby-on-rails net-ssh

6
推荐指数
2
解决办法
6370
查看次数

如何让ActionController :: Live流与Thin一起使用?

你可以用thinActionController::Live实现服务器端的事件(SSE)和长轮询?如果是这样,怎么样?

上下文

虽然标题是如何获取Rails 4 ActionController :: Live流与Thin和Ruby 2一起使用的重复Thin和Puma如何通过直播流扩展?OP通过提出两个问题来混淆水域,这个问题从未得到回答.

thin如果你通过exec thin start --threaded以下方式启动它,许多其他帖子建议你可以用于服务器端事件(sse):Heroku是否支持ActionController :: Live?Puma只有多线程导轨4 http服务器?,Aaron的开创性建筑http://tenderlovemaking.com/2012/07/30/is-it-live.html和Ryan常年可靠的http://railscasts.com/episodes/401-actioncontroller-live?view=asciicast.但即使我正在复制Railscast示例,我也无法使用它thin.

我试过的

# ----------------------------------------------------------------
# file: config/routes.rb
Rails.application.routes.draw do

  resources :widgets do
    collection do
      get 'events'              # SSE test
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

_

# ----------------------------------------------------------------
# file: config/environments/development.rb
Rails.application.configure do
    ... snip ...
    # see http://tenderlovemaking.com/2012/07/30/is-it-live.html
    config.preload_frameworks = true
    config.allow_concurrency = true
end …
Run Code Online (Sandbox Code Playgroud)

ruby streaming ruby-on-rails thin actioncontroller

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

如何在node.js中的多个文件之间拆分类定义?

我的类定义Foo已经发展到我想将它分成多个文件的程度.例如,我想要像:

// file foo.js
'use strict';
function Foo() { };
Foo.prototype.constructor = Foo;
Foo.prototype.methodA = function() { console.log('methodA'); };
module.exports = Foo;

// file foo-aux.js
'use strict';
Foo.prototype.methodB = function() {
  console.log('methodB');
  this.methodA();
};

// file main.js
'use strict';
const Foo = require('./foo');
var foo = new Foo();
foo.methodB();
Run Code Online (Sandbox Code Playgroud)

什么是上述代码的正确组合module.exportrequire()使用?

require node.js node-modules

6
推荐指数
2
解决办法
2530
查看次数

在Node.js中反序列化后,将对象与其类重新关联

我正在为一些特定于应用程序的对象编写一个简单的序列化/反序列化框架.

考虑以下:

"use strict";
function Dog(name) { this._name = name; };
Dog.prototype.constructor = Dog;
Dog.prototype.getName = function() { return this._name; }

var d1 = new Dog('fido');
var d2 = JSON.parse(JSON.stringify(d1));  // serialize / deserialize

> d1
Dog { _name: 'fido' }
> d1.getName()
'fido'
> d2
{ _name: 'fido' }
> d2.getName()
TypeError: d2.getName is not a function
Run Code Online (Sandbox Code Playgroud)

在这一点上,我们可以问"这是什么d1d2没有?"

部分工作的一种方法是手动将d1的方法分配给d2:

> d2.constructor = d1.constructor
> d2.getName = d1.getName
> d2.getName()
'fido'
Run Code Online (Sandbox Code Playgroud)

这有几个缺点.首先,我必须手动将d1的每个方法分配给d2.其次,d2获取自己的属性,并且不使用原型机制共享插槽:

> d2
Dog { …
Run Code Online (Sandbox Code Playgroud)

javascript serialization json class node.js

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

如何使用 SI 前缀(micro、milli、Mega、Giga 等)格式化数字?

我的数字范围从非常小到非常大,我想使用带有大小和后缀的“工程符号”来格式化它们:

n.nnn S
Run Code Online (Sandbox Code Playgroud)

其中 1.0 <= n.nnn < 1000.,S 是公制 (SI) 前缀。所以:

1234.5e+13 => 12.35P
12345678 => 12.35M
1234 => 1.234K
1.234 => 1.234
0.1234 => 123.4m
1234.5e-16 => 1.235f
Run Code Online (Sandbox Code Playgroud)

等等。我该如何做到这一点,例如使用Python?

python string-formatting

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

C中四舍五入的有符号整数除法

我想计算 x/y,其中 x 和 y 都是有符号整数,并将结果四舍五入到最接近的整数。具体来说,我想要一个rquotient(x, y)仅使用整数算术的函数,以便:

ASSERT(rquotient(59, 4) == 15);
ASSERT(rquotient(59, -4) == -15);
ASSERT(rquotient(-59, 4) == -15);
ASSERT(rquotient(-59, -4) == 15);

ASSERT(rquotient(57, 4) == 14);
ASSERT(rquotient(57, -4) == -14);
ASSERT(rquotient(-57, 4) == -14);
ASSERT(rquotient(-57, -4) == 14);
Run Code Online (Sandbox Code Playgroud)

我已经向 SO 寻求解决方案,并发现以下内容(每个都有自己的缺点):

c signed integer-division

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