小编ngw*_*ngw的帖子

无法使Resque工作

我正在努力使Resque与我的项目一起工作,但不幸的是,似乎由于某些原因Resque无法在Redis上编写.

Redis似乎配置正确,我能够连接redis-cli并发出命令,在我的Rails 3.0.5应用程序中配置的端口6379上运行.当我尝试将Resque排队等待作业排队时,但似乎并没有在Redis上实际发生某些事情(在我的Redis日志中连接的0个客户端).当我重新启动控制台时,队列为空,没有工作人员在运行.

一切都失败了,我的rails日志中没有任何内容,控制台上什么都没有,如果我启动一个工作人员,没有任何东西,它(显然)没有找到任何工作要执行.

https://gist.github.com/867620

有关如何修复或调试此问题的任何建议?

ruby-on-rails resque

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

使用rspec测试after_create挂钩

我的模型(RoR 3.0.x)中的代码或多或少是这样的:

class Message

    after_create :notify

    protected

    def notify
        if visible?
            Notifier.message_from_portfolio( user, self ).deliver
        else
            Notifier.invisible_message_from_portfolio( user, self ).deliver
        end
    end

end
Run Code Online (Sandbox Code Playgroud)

我正在使用最新的rspec gem来测试它.问题是我无法测试通知方法:如果我直接测试它我不能因为它受到保护,如果我创建一条消息并设置期望它不起作用,因为很明显即使rspec运行通知metod我无法及时赶上电话.

我的规格是:

describe :notification do
    it "should send the whole message by email when visible" do
        u = Factory.create( :user, :account_type => 1 )
        message = u.messages.build( :body => "Whatever", :author => "Nobody", :email => "test@example.com" )
        Notifier.should_receive( :message_from_portfolio )
        message.save
    end
end
Run Code Online (Sandbox Code Playgroud)

对象通知程序永远不会收到message_from_portfolio.我究竟做错了什么?建议?

rspec rspec2 rspec-rails ruby-on-rails-3

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

在Ruby中从aws-kms解密密钥

我在服务器框架字上使用serverless-kms-secrets来设置一些我想使用Ruby使用的ENV变量。

我可以确认该插件运行正常,它使用加密变量生成了文件,并且可以在我的环境中在AWS lambda上看到该加密变量。问题是我无法在Ruby中解密它。在插件中(正确)解密它的代码在这里,我知道它获取保存在文件中的字符串并使用Base64对其进行编码,因此没什么大不了的。在Ruby中:

token = "blablabla"
client = Aws::KMS::Client.new(region: 'us-east-1')
blob = Base64.encode64(token)
client.decrypt({ciphertext_blob: blob})
....
Aws::KMS::Errors::InvalidCiphertextException ()
Run Code Online (Sandbox Code Playgroud)

客户端应该自动获取我的凭据,但是我不确定我是否了解keyArn的使用方式,尽管看起来并不相关。

有谁知道如何解决这个问题?

ruby node.js aws-kms serverless-framework

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

使用 rswag 遵循 JSON Api

我正在使用rswag来测试一个相当常见的 RubyOnRails JSON Api应用程序,但我无法找出将文件上传到端点的相当常见的情况。

端点需要data请求正文中的常用属性以及file包含二进制文件的属性,并且我无法使 rswag 生成具有正确参数的请求。

  path '/documents' do
    post 'Creates a document' do
      tags 'Documents'
      consumes 'multipart/form-data'
      produces 'application/vnd.api+json'

      parameter name: 'data',
                description: 'Whatever',
                attributes: {
                  schema: {
                    type: :object,
                    properties: {
                      file: { type: :binary },
                    },
                  },
                }

      response '201', 'success' do
        let(:data) do
          {
            attributes: {
              file: Rack::Test::UploadedFile.new($REALARGS),
            },
          }
        end

        schema "$ref": '#/definitions/post_document_responses/201'

        run_test! do |_example|
          # ACTUAL TEST
        end
      end
    end
  end
Run Code Online (Sandbox Code Playgroud)

还有一些其他更简单的参数(例如授权)已正确生成,然后我确信rswag已正确挂钩。我看到的请求没有参数,我可以删除data …

rspec ruby-on-rails json-api rswag

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