小编bob*_*low的帖子

Rspec:事务夹具在升级到rails 4后不起作用

我在spec_helper.rb中设置了以下行

config.use_transactional_fixtures = true
Run Code Online (Sandbox Code Playgroud)

这意味着每个测试都应该自行清理.一次测试所做的任何db更新都不应该用于下一次测试.

我的一个spec文件中有两个测试.

it 'should update the DB' do
  Setting.put('abcd', 'efgh')
end

it 'should not find the DB update' do
  Setting.get('abcd').should be_nil
end
Run Code Online (Sandbox Code Playgroud)

以上两个测试用于使用Rails 3.2.14

但升级到Rails 4后,第二次测试失败,出现以下错误,

------
expected: nil
got: "efgh"
-----
Run Code Online (Sandbox Code Playgroud)

由于这个问题,我在套件中有大约100个测试失败.

我可以为Rails 4升级找到的唯一相关文档是非常模糊的:"Rails 4.0已经弃用了ActiveRecord :: Fixtures而支持ActiveRecord :: FixtureSet."

我不确定这是否/如何相关.理想情况下,我希望有一个全局设置(config.use_transactional_fixtures = true),而不必更改测试的逻辑(或在(:each)/ after(:each)模块之前添加额外的模块,以使现有测试通过. 请帮忙!

activerecord rspec ruby-on-rails

11
推荐指数
1
解决办法
2719
查看次数

如何使用GRAPE API允许二进制文件下载

我想允许使用ruby的Grape API下载二进制文件(.p12文件).这就是我想要的.

get '/download_file' do
  pkcs12 = generate_pkcsfile 
  content_type('application/octet-stream')
  body(pkcs12.der)
end
Run Code Online (Sandbox Code Playgroud)

使用ActionController的等效代码是

begin
  pkcs12 = generate_pkcsfile
  send_data(pkcs12.der,
            :filename => 'filename.p12')
end
Run Code Online (Sandbox Code Playgroud)

问题是使用API​​下载的文件似乎是一个文本文件,每个字符都嵌入了'\ ufffd'前缀,而使用浏览器下载的文件似乎是二进制文件.如何使用GRAPE API框架允许下载通过ActionController的send_data下载的同一文件

ruby api ruby-on-rails actioncontroller grape-api

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

dialogflow 和 google 操作的集成

我正在尝试使用 Dialogflow 与谷歌助手/谷歌主页集成,但我们遇到了一些问题。

问题如下。

  1. 我创建了一个 google 操作项目,该项目链接到相应的对话流项目。我在 dialogflow 项目以及 dialogflow 项目和 google actions 项目的集成上都启用了 v2 API。
  2. dialogflow 项目具有调用 webhook 来实现的意图。我们有一个响应 webhook API 的服务设置。此服务以 V2 格式返回响应,包括在关键fulfillmentMessages 下的丰富消息(如card、quick_replys 和carousel_select):

但是,当 dialogflow 将此信息转发给 google 操作时,它似乎没有传递任何此类信息。另一方面,如果我fulfillMentText在我的服务响应中包含一个调用的键,则 dialogflow 会将该信息转发给 google 操作作为

[{"simpleResponse":{"textToSpeech":"Nice to meet you, Bob!"}}]}
Run Code Online (Sandbox Code Playgroud)

根据阅读可用的文档,我不清楚我需要做什么才能使对话流还将fulfillmentMessages 的内容传播到谷歌操作。

先感谢您。

actions-on-google dialogflow-es

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