小编Geo*_*haw的帖子

如何将实例变量传递给RSpec共享示例

我正在使用RSpec(2.10.1)来测试模型上的验证,并提取了一些代码以与其他模型验证共享.验证首先写在Companies表上,因此代码如下所示:

# support/shared_examples.rb
shared_examples "a text field" do |field, fill, length|
  it "it should be long enough" do
    @company.send("#{field}=", fill * length)
    @company.should be_valid
  end

  etc...
end
Run Code Online (Sandbox Code Playgroud)

用法是:

# company_spec.rb
describe Company do
  before { @company = Company.new( init stuff here ) }

  describe "when address2" do
    it_behaves_like "a text field", "address2", "a", Company.address2.limit
  end

  etc...
end
Run Code Online (Sandbox Code Playgroud)

我想@company将参数作为参数传递给共享示例,以便我可以将代码重用于不同的模型,如下所示:

# support/shared_examples.rb
shared_examples "a text field" do |model, field, fill, length|
  it "it should be long enough" do
    model.send("#{field}=", fill …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails rspec2

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

Rails Update to 3.2.11中断运行多个服务器

我们的应用程序在不同的端口运行两个Rails服务器,它们相互通信.使用Rails 3.2.8,我可以打开一个终端,cd到项目,运行rails s -p3000,打开另一个终端,运行rails s -p3001,一切正常.gemfile包含thin,因此thin将自动启动,但使用rails s将允许使用--debugger何时需要.

自更新Rails 3.2.11以来,这不再有效.我收到一个错误:"服务器已在运行.请检查/home/george/Projects/dashboard/tmp/pids/server.pid".我可以thin直接在两个端口上启动,但是没有调试支持.启动thin一个和rails另一个似乎不起作用,但不清楚当错误停止服务器时所有服务器任务都被杀死.

ruby-on-rails-3.2

15
推荐指数
1
解决办法
5737
查看次数

为什么在Rails中使用匹配而不是获取?

在Ruby on Rails 3教程中,代码使用:

match '/signup',  :to => 'users#new'
match '/signin',  :to => 'sessions#new'
match '/signout', :to => 'sessions#destroy'

match '/contact', :to => 'pages#contact'
match '/about',   :to => 'pages#about'
match '/help',    :to => 'pages#help'
Run Code Online (Sandbox Code Playgroud)

而不是

get '/signup',  :to => 'users#new'
get '/signin',  :to => 'sessions#new'
get '/signout', :to => 'sessions#destroy'

get '/contact', :to => 'pages#contact'
get '/about',   :to => 'pages#about'
get '/help',    :to => 'pages#help'
Run Code Online (Sandbox Code Playgroud)

即使所有路由只需要HTTP GET动词.为什么不在实践中使用get(或:via => [:get]打开match)并限制路由操作?

routes ruby-on-rails-3 railstutorial.org

12
推荐指数
1
解决办法
2375
查看次数

安装RDoc文档时出错:不兼容的编码regexp匹配

在过去一周,在一些gem安装或gem更新操作中,我收到了类似这样的错误:

ERROR:  While generating documentation for sinatra-1.3.1 ... MESSAGE:   error generating C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/doc/sinatra-1.3.1/rdoc/README_de_rdoc.html: incompatible encoding regexp match (UTF-8 regexp with IBM437 string) (Encoding::CompatibilityError)

类似的:

ERROR:  While generating documentation for rest-client-1.6.7 ... MESSAGE:   error generating C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/doc/rest-client-1.6.7/rdoc/README_rdoc.html: incompatible encoding regexp match (UTF-8 regexp with IBM437 string) (Encoding::CompatibilityError)

可能还有一个地方.我已经读过这篇文章,但是找不到我没写的代码和我无法控制的数据的解决方案.知道如何解决这个问题吗?

ruby regex encoding rubygems rdoc

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

如何在Ruby中%w [text]而不包括\n它换行的位置

我想建立一个状态缩写列表的数组,因为它很长,我想把它分成几行.但是,使用%w或%W包括行中断的\n.

STATES = %w(AL AK AZ AR CA CO CT DE FL GA HI ID IL IN IA KS KY LA ME\
  MD MA MI MN MS MO MT NE NV NH NJ NM NY NC ND OH OK OR PA RI SC SD\
  TN TX UT VT VA WA WV WI WY)
Run Code Online (Sandbox Code Playgroud)

所以"ME""ME\n",这将"SD""SD\n"

我该如何解决这个问题?

ruby string

6
推荐指数
1
解决办法
938
查看次数

Rails 4和RSpec,路由规范中未定义的方法`断言'

我遇到了与路由规范中未定义的方法`assertions'相同的问题,但是我正在运行Rails 4并且它被锁定为minitest 5.0或更高版本.因此使用minitest 4.7的解决方案我无法工作.有没有解决这个问题?我在哪里报告错误?

minitest rspec2 rspec-rails ruby-on-rails-4

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