小编har*_*s08的帖子

rake db:create - Mysql2::错误:未知数据库

我正在尝试使用任务创建数据库rake db:create

当我运行命令bundle exec rake db:create来创建数据库并加载架构时,出现以下错误:

rake aborted!
Mysql2::Error: Unknown database 'xxx_development'
Run Code Online (Sandbox Code Playgroud)

我的database.yml

development:
  adapter: mysql2
  host: localhost
  reconnect: true
  username: user
  password: password
  pool: 50
  database: xxx_development
Run Code Online (Sandbox Code Playgroud)

我检查了 mysql 服务器正在运行,并且我可以使用我在其中的密码/用户名连接到它database.yml

我也明白我可以继续创建数据库,mysql然后运行,bundle exec rake db:create但是 rake 任务是否db:create也会创建一个数据库,以防它不存在?

版本rails3.2.22. 版本mysql22.9.13.

任何指示都将受到高度赞赏。

ruby rake ruby-on-rails ruby-on-rails-3

8
推荐指数
1
解决办法
5373
查看次数

WebMock.disable_net_connect!不工作

我正在尝试编写一个WebMock基于测试用例来模拟调用 http API。为此,我将其包含webmock/rspec在我的spec_helper.rb文件中,并添加WebMock.disable_net_connect!(allow_localhost: true)了禁止通过 Web 进行的 http 请求。但是当我运行一个虚拟测试来检查 http 请求被阻止的天气时,我可以看到仍然发出了 http 请求。

spec_helper.rb 文件:

ENV["RAILS_ENV"] ||= 'test'
require 'rubygems'
require File.expand_path("../../config/environment", __FILE__)
require 'authlogic/test_case'
include Authlogic::TestCase
require 'rspec/rails'
require 'rspec/autorun'
require 'rspec/mocks'
require 'capybara/rspec'
require 'capybara/rails'
require "paperclip/matchers"
require 'vcr'
require 'webmock/rspec'
WebMock.disable_net_connect!
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
  config.treat_symbols_as_metadata_keys_with_true_values = true
  config.mock_with :rspec
  config.use_transactional_fixtures = false

  config.fixture_path = "#{::Rails.root}/spec/fixtures"
  config.include Paperclip::Shoulda::Matchers

  config.include FactoryGirl::Syntax::Methods

  config.infer_base_class_for_anonymous_controllers = false
  config.include Rails.application.routes.url_helpers
  config.include Capybara::DSL …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails webmock

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

错误:无法递增类型为'char [6]'的值

我正在尝试学习C / C ++中的指针和字符串文字。根据我的理解,字符串文字是char数组,\0末尾为null 。同样,我们基本上可以对数组进行所有指针算术运算,例如递增和递减。

但是,当我尝试运行以下代码时:

#include <iostream> 
using namespace std;

int main (){
    char *c ="Hello";
    char d[6];

    while(*d++ = *c++);

    cout<<c<<endl<<d;
} 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误,

error: cannot increment value of type 'char [6]'
    while(*d++ = *c++);
Run Code Online (Sandbox Code Playgroud)

我对此代码的假设是,的值string literal c将被复制到char array d

编辑: 现在我对这两个语句之间的区别有点困惑:

*(d++)
Run Code Online (Sandbox Code Playgroud)

*(d+1)
Run Code Online (Sandbox Code Playgroud)

假设d是一个数组。

c c++ arrays pointers string-literals

2
推荐指数
1
解决办法
3309
查看次数

从其键属于数组的哈希中选择键值对

我有一系列的钥匙:

keys = ["first_name", "last_name", "foo"]
Run Code Online (Sandbox Code Playgroud)

和哈希:

hsh = {"first_name" => "tester", "zoo" => "loo", "foo" => "bar"}
Run Code Online (Sandbox Code Playgroud)

我想提取其键存在于数组中的键值对,以获得:

res = {"first_name" => "tester", "foo" => "bar"}
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

ruby arrays hash

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