我想创建一个ruby脚本,我可以通过ssh隧道在远程服务器上运行mysql命令.
现在我有一个手动过程来执行此操作:
我希望能够自动化这个,所以我可以运行脚本.
例:
require 'rubygems'
require 'net/ssh/gateway'
require 'mysql'
#make the ssh connection -> I don't think I am doing this right.
Net::SSH.start('server','user') do |session|
session.forward.local(3307,'127.0.0.1', 3306)<br>
mysql = Mysql.connect("127.0.0.1","root","","",3307)
dbs = mysql.list_dbs<br>
dbs.each do |db|<br>
puts db <br>
end
session.loop(0){true}<br>
end
Run Code Online (Sandbox Code Playgroud)
更新 - 2010-11-10:
我真的很接近这个代码:
require 'rubygems'
require 'mysql'
require 'net/ssh/gateway'
gateway = Net::SSH::Gateway.new("host","user",{:verbose => :debug})
port = gateway.open("127.0.0.1",3306,3307)
# mysql = Mysql.connect("127.0.0.1","user","password","mysql",3307)
# puts "here"
# mysql.close
sleep(10)
gateway.close(port) …Run Code Online (Sandbox Code Playgroud) 我有三个模型,全部用于has_many:通过关系.它们看起来像这样:
class Company < ActiveRecord::Base
has_many :company_users, dependent: :destroy
has_many :users, through: :company_users
accepts_nested_attributes_for :company_users, :users
end
class CompanyUser < ActiveRecord::Base
self.table_name = :companies_users #this is because this was originally a habtm relationship
belongs_to :company
belongs_to :user
end
class User < ActiveRecord::Base
# this is a devise model, if that matters
has_many :company_users, dependent: :destroy
has_many :companies, through: :company_users
accepts_nested_attributes_for :company_users, :companies
end
Run Code Online (Sandbox Code Playgroud)
这个加载很好,并且连接可以很好地用于查询.但是,每当我做某事时
@company = Company.last
@user = @company.users.build(params[:user])
@user.save #=> true
@company.save #=> true
Run Code Online (Sandbox Code Playgroud)
无论是User记录和CompanyUser …
我觉得我得错过了一些东西.我正在编写一个ruby gem,它允许与活动记录交互作为其主要功能的补充.
在为它编写测试用例时,我需要能够指定虚拟活动记录模型来测试此功能.如果我能得到一个活动记录模型的实例,它不需要任何与db的连接,可能有关系,所有这些东西,但不需要我在数据库中设置表,这将是极好的.我对测试很陌生,除了测试之外,我还很新,但看起来我应该能够很容易地做到这一点,但我找不到任何东西.
谁能告诉我我错过了什么?我看过工厂,制造商,固定装置,所有那些似乎想要打到数据库.人们如何测试你需要AR对象的宝石只用于测试?
为了了解有关 OAuth 的更多信息,我正在尝试编写一个 OAuth 2.0 提供者和消费者。
我有点使用Doorkeeper Gem作为我的提供商的参考,但我想编写自己的。
我的问题是关于规范第 1.3 节中关于不记名代币的最后一个项目符号。
(F) 资源服务器验证访问令牌,如果有效,则为请求提供服务。
在这种情况下,确实The resource server validates the access token意味着:
我正在尝试编写一个Safari扩展,它包含主工具栏上的一个按钮,上面有一个弹出窗口,以及一个上下文菜单项.基本感觉是在1Password扩展感觉之后建模的.
popover的一个工作是允许一个人登录.我也有条件地改变上下文菜单项的动作,如果一个人没有登录,点击菜单项我想显示popover允许他们登录,但我找不到在开发人员指南中执行此操作的方法.
我如何"显示"一个弹出窗口?