小编zrl*_*3dx的帖子

Rspec + savon + vcr没有录音

我无法用录像机录制任何内容,我有这样的设置:

spec_helper.rb

require 'vcr'
VCR.configure do |c|
  c.cassette_library_dir = 'spec/cassettes'
  c.hook_into :webmock
  c.configure_rspec_metadata!
  c.default_cassette_options = { :record => :new_episodes }
end
Run Code Online (Sandbox Code Playgroud)

并测试:

describe SomeClass do
  describe '#foo', vcr: true do
    it 'should do http request', do
      expect(subject.do_request).to be_true
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

运行该规范会导致:

.HTTPI executes HTTP GET using the net_http adapter
SOAP request: (...)
Run Code Online (Sandbox Code Playgroud)

完全像没有录像机.遗憾的是文档中没有任何内容.我在这里报告类似的问题,但要求httpi不会产生任何影响.要做到这一点应该怎么做?

rspec ruby-on-rails savon vcr

5
推荐指数
1
解决办法
1381
查看次数

Haml:如何生成动态id

我在erb中有以下代码可以正常工作:

<div id='flash_<%= flash.keys.first.to_s %>'>
    <%=h    flash[flash.keys.first] %>
</div>
Run Code Online (Sandbox Code Playgroud)

我想把它转换为haml:

#flash_#{flash.keys.first.to_s}
  =h flash[flash.keys.first]
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

Illegal element: classes and ids must have values.
Run Code Online (Sandbox Code Playgroud)

这是奇怪的,因为有IS值,'flash_'部分始终存在,即使我这样做,我也会得到错误:

#flash_#{nil.object_id}
Run Code Online (Sandbox Code Playgroud)

显然我的Ruby插值在haml中有些不对劲,但我无法做到.根据文档http://haml.info/docs/yardoc/file.REFERENCE.html#ruby_interpolation_# {}用于内插Ruby,它适用于这种情况:

#flash_
  #{flash.keys.first.to_s}
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的.

总之,我想得到以下输出:

<div id="flash_foo"> blahblah </div>
Run Code Online (Sandbox Code Playgroud)

但它也可以:

<div id="flash_"></div>
Run Code Online (Sandbox Code Playgroud)

如何用haml获得?

haml ruby-on-rails string-interpolation

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

用户控件#creore中的Errno :: ECONNREFUSED

我的申请已经开始,然后我继续注册.输入我的信息后,我收到一个错误页面说:

用户控件#creore中的Errno :: ECONNREFUSED

Connection refused - {:data=>"<?xml version=\"1.0\" encoding=\"UTF-8\"?><add><doc><field name=\"id\">User 1</field><field name=\"type\">User</field><field name=\"type\">ActiveRecord::Base</field><field name=\"class_name\">User</field><field name=\"username_text\">mikeadeleke</field><field name=\"bio_text\">Founder of Edopter</field></doc></add>", :headers=>{"Content-Type"=>"text/xml"}, :method=>:post, :params=>{:wt=>:ruby}, :query=>"wt=ruby", :path=>"update", :uri=>#<URI::HTTP:0x007fb6c3c911d0 URL:http://localhost:8982/solr/update?wt=ruby>, :open_timeout=>nil, :read_timeout=>nil, :retry_503=>nil, :retry_after_limit=>nil}
Run Code Online (Sandbox Code Playgroud)

消息:

app/controllers/users_controller.rb:14:in `create'
Run Code Online (Sandbox Code Playgroud)

所以这是我的代码导致了阻塞.我看到没有问题,并通过roodi验证器运行它.

class UsersController < ApplicationController
    before_filter :get_user, except: [:new, :create]

    def get_user
        @user = User.find_by_username(params[:user_name])
    end

    def new
        @user = User.new
    end

    def create
        @user = User.new(params[:user])
        if @user.save
            sign_in @user
            flash[:success] = "Woohoo! Thanks for creating an account. Feel free to edit your profile or look …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails controllers sunspot-rails sunspot-solr

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