我是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中编写HTTP代理的例子,例如Torsten Becker的这个要点,但我如何扩展它以处理HTTPS,又称为"中间人"SSL代理?
我正在寻找一个简单的源代码框架,我可以扩展它以满足我自己的日志记录和测试需求.
我已经使用了Charles,一个类似于Fiddler 的漂亮的HTTPS代理应用程序,它本质上是我想要的,除了它在一个应用程序中打包.我想写自己的,因为我有过滤和演示的特定需求.
四处乱逛,我理解术语好一点.我不是在完整的"中间人"SSL代理之后.相反,它将在我的机器上本地运行,因此我可以尊重它提供的任何SSL证书.但是,我需要查看我的请求的数据包的解密内容和响应的解密内容.
这个简单的例子使用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]
详细信息如下......
# 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)
# file: spec/factories.rb
FactoryGirl.define do
factory :test_model do
end
end
Run Code Online (Sandbox Code Playgroud)
# 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) 看来我正在回顾SO帖子中所采取的步骤: Capybara,Poltergeist和Phantomjs,并在身体上做出空洞的反应.(如果需要,请将此标记为重复,但我包含一个最小的独立测试用例和版本号.)
我做了什么明显错误的事吗?我可以运行另一个可以帮助隔离问题的最小测试吗?
file:pgtest.rbrequire '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)
值得注意的是,我可以使用phantomjs从www.google.com中提取html:
file:pjs_dump.jsvar 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) 我正在尝试建立一个到远程服务器的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) 你可以用thin与ActionController::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) 我的类定义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.export和require()使用?
我正在为一些特定于应用程序的对象编写一个简单的序列化/反序列化框架.
考虑以下:
"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)
在这一点上,我们可以问"这是什么d1有d2没有?"
部分工作的一种方法是手动将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) 我的数字范围从非常小到非常大,我想使用带有大小和后缀的“工程符号”来格式化它们:
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?
我想计算 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 寻求解决方案,并发现以下内容(每个都有自己的缺点):
ruby ×6
node.js ×2
c ×1
capybara ×1
class ×1
datamapper ×1
factory-bot ×1
https ×1
javascript ×1
json ×1
net-ssh ×1
node-modules ×1
openssl ×1
phantomjs ×1
poltergeist ×1
proxy ×1
python ×1
require ×1
signed ×1
ssh ×1
ssl ×1
streaming ×1
thin ×1