我正在重做应用程序并从旧应用程序迁移数据.一些模型名称将是相同的,但不是全部.
我正在编写一个rake任务来连接旧数据库,读取记录,做一些事情并将结果写入新数据库.因为一些表名是相同的,所以模型名称是相同的,所以我想为我的模型命名空间
module OldData
class Account <ActiveRecord::Base
has_many :subcriptions
establish_connection $olddb
end
class Subscription <ActiveRecord::Base
belongs_to :account
establish_connection $olddb
end
end
Run Code Online (Sandbox Code Playgroud)
其中$ olddb是连接到旧数据库所需的哈希
我可以打开帐户记录并将其读取,但帐户模型没有订阅关联.最新的Rails文档表明这应该有效.但事实并非如此.
有什么建议?
我需要访问通过客户端证书保护的内部站点.因此,为了使用phantomjs,我导出了我在Firefox中使用的证书来访问该站点,并使用openssl命令行将其转换为私钥和证书.我现在是什么phantomjs在访问服务器上的页面时将该证书呈现给ssl服务器.我该怎么做?
我试过这个
phantomjs --ssl-certificates-path=/etc/pki --ignore-ssl-errors=yes --proxy=myproxy:myport test.js
Run Code Online (Sandbox Code Playgroud)
/ etc/pki是我放置证书和密钥的路径
test.js就是这个; -
page = require('webpage').create()
page.open('https://myprotectedsite/', function(status) {
console.log(status);
phantom.exit();
})
Run Code Online (Sandbox Code Playgroud)
但它不起作用.console.log(status)总是'失败'
我需要做什么?
使用FTP命令我想上传一个大文件,然后将该文件复制到远程FTP服务器上的许多目录.所有复制命令似乎都与从本地复制到远程或相反的方式有关.
是否有FTP命令将远程复制到远程?
我正在使用RSpec(Rails 3.2.8上的2.12)测试视图.我正在使用CanCan有条件地在页面上显示某些元素.这需要一个控制器方法'current_user'.在我的一些规范中,我已经能够存根current_user,例如.controller.stub(:current_user).and_return(etc)或view.stub.etc.
这适用于我的一些规格.但我有一对夫妇在哪里工作,我不明白为什么.
它不工作的两个规范测试一个视图,它调用一个部分,在部分内部我访问'current_user'作为一个方法.错误是
undefined local variable or method `current_user'
Run Code Online (Sandbox Code Playgroud)
所以我想我的问题是如何正确地存根方法,以便可以在局部内部访问它们.
应该怎么做?
我正在使用Capistrano 3,我想创建自己的任务.所以我在lib/capistrano/tasks中创建了一个文件my_new_thing.rake,当我运行cap -T时我可以看到任务.但是......有些方法不可用.当我尝试使用上传!我明白了
cap aborted!
NoMethodError: undefined method `upload!' for main:Object
Run Code Online (Sandbox Code Playgroud)
但是,如果我将相同的任务移动到config/deploy.rb然后上传!方法可用.
发生什么了?如何创建新的Capistrano任务将它们放在单独的文件中并让它们工作?
在Cucumber中,有了Rspec和Capybara,我有一个测试来检查按钮是否有类.这里是
expect(@some_button).to have_css(".in-cart")
Run Code Online (Sandbox Code Playgroud)
它失败了,但是
@some_button['class']
Run Code Online (Sandbox Code Playgroud)
回报
'btn product in-cart'
Run Code Online (Sandbox Code Playgroud)
所以按钮肯定有"购物车"类.
作为临时措施,我改变了我的考试; -
expect(@some_button['class']).to match /in-cart/
Run Code Online (Sandbox Code Playgroud)
这显然是疯了.但为什么要'have_css'或'has_css?' 对于明显具有预期类的DOM元素,返回false?
page.all('.in-cart')也包含按钮,因此Capybara绝对可以找到它.
顺便说一下,我也尝试过'button.in-cart','in-cart',期待(等).to have_selector,expect(etc.has_selector?('.in-cart')).be be_truthy和所有组合.
我正在使用 Ruby 2.5.x OpenSSL 库来玩椭圆曲线。我可以使用轻松生成私钥和公钥对
curve = OpenSSL::PKey::EC.new('secp256k1')
curve.generate_key
Run Code Online (Sandbox Code Playgroud)
但给定私钥我想重新生成公钥。
我知道 OpenSSL 可以做到这一点,因为命令行允许您做到这一点,Ruby Bitcoin 项目也可以做到这一点。但 Ruby Bitcoin 项目有自己的使用 FFI 的 OpenSSL 接口,而不是 Ruby 提供的接口。
Ruby 2.5.x openssl 库是否没有公开足够的 OpenSSL 接口来从私钥生成椭圆曲线公钥,或者它可以但没有记录?