小编Joh*_*all的帖子

命名空间模型中的Rails关联

我正在重做应用程序并从旧应用程序迁移数据.一些模型名称将是相同的,但不是全部.

我正在编写一个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文档表明这应该有效.但事实并非如此.

有什么建议?

namespaces ruby-on-rails model-associations

13
推荐指数
1
解决办法
7878
查看次数

将ssl证书提供给phantomjs的正确方法是什么?

我需要访问通过客户端证书保护的内部站点.因此,为了使用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)总是'失败'

我需要做什么?

ssl phantomjs

9
推荐指数
3
解决办法
7508
查看次数

在FTP中,如何将远程文件复制到其他目录

使用FTP命令我想上传一个大文件,然后将该文件复制到远程FTP服务器上的许多目录.所有复制命令似乎都与从本地复制到远程或相反的方式有关.

是否有FTP命令将远程复制到远程?

ftp

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

rspec视图存根和部分

我正在使用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)

所以我想我的问题是如何正确地存根方法,以便可以在局部内部访问它们.

应该怎么做?

rspec views partials stubs

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

Capistrano 3,使用上传!在lib/capistrano/tasks中的任务中

我正在使用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任务将它们放在单独的文件中并让它们工作?

ruby ruby-on-rails capistrano3

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

与Capybara has_css匹配器的Rspec无法正常工作

在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和所有组合.

rspec ruby-on-rails cucumber capybara

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

使用 Ruby OpenSSL 从私钥获取椭圆曲线公钥

我正在使用 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 接口来从私钥生成椭圆曲线公钥,或者它可以但没有记录?

ruby openssl elliptic-curve

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