我在rails项目的capistrano部署期间收到此消息:
syck has been removed, psych is used instead
Run Code Online (Sandbox Code Playgroud)
版本:
gem 'rails', '=3.2.13'
ruby 2.0.0p247
Run Code Online (Sandbox Code Playgroud)
据我所知,红宝石使用本土yamler"心理".
Gemfile中没有任何yamler.
在我的boot.rb中:
require 'yaml'
YAML::ENGINE.yamler = 'psych'
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?
我的控制器规范中有很多条件和相同的期望:
if condition 1 - expect(reponse).to redirect_to same_url
if condition 2 - expect(reponse).to redirect_to same_url
if condition 3 - expect(reponse).to redirect_to same_url
Run Code Online (Sandbox Code Playgroud)
RSpec 的 DRY 规则建议使用“上下文”而不是“if 条件”。好的,这是我的控制器规格:
RSpec.describe MyController, type: :controller do
describe ".method" do
context "when wrong hash" do
it "redirect to error_url" do
get :method, key: '123', hash: 'wrong_hash'
expect(subject).to redirect_to error_url
end
end
context "when status is blocked" do
it "redirect to error_url" do
get :method, key: '123', hash: valid_hash, status: 'blocked'
expect(subject).to redirect_to error_url
end
end …Run Code Online (Sandbox Code Playgroud)