小编Chr*_*ugh的帖子

41
推荐指数
4
解决办法
3万
查看次数

如何在resque-retry和Rails 4中测试重试和失败?

我正在尝试编写一个测试resque-retry的重试功能的规范,我似乎无法让测试正确地命中binding.pry.有没有办法使用rspec 3测试此功能,以便我可以验证它们是否按预期运行?

这是一个请求规范,我试图通过fixtures模拟一个实时请求,但无论我尝试什么,我似乎无法得到重试的工作.

gem 'resque', require: 'resque/server'
gem 'resque-web', require: 'resque_web'
gem 'resque-scheduler'
gem 'resque-retry'
gem 'resque-lock-timeout'
Run Code Online (Sandbox Code Playgroud)

我正在使用resque_rspec,并尝试此测试策略.

部分规格

it 'retries it' do
  stub_request(:any, /.*api.bigcartel.*/).to_return(body: '{}', status: 200)
  @order_shipped_json['order']['originator_id'] = @provider_order
  post "/hook/shops/#{@shop.id}", @order_shipped_json.to_json, format: :json
  ResqueSpec.perform_all(queue_name)
  ???
end
Run Code Online (Sandbox Code Playgroud)

队列工作

class QueueHook
  extend Resque::Plugins::LockTimeout
  extend Resque::Plugins::Retry
  extend QueueLock
  extend QueueLogger

  @queue = AppSettings.queues[:hook_queue_name].to_sym
  @lock_timeout = 600
  @retry_exceptions = [QueueError::LockFailed]
  @retry_limit = 600
  @retry_delay = 1

  class << self
    def perform(web_hook_payload_id, _whiplash_customer_id)
      ActiveRecord::Base.clear_active_connections!
      @web_hook_payload = WebHookPayload.find(web_hook_payload_id)
      klass_constructor …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails resque resque-retry

19
推荐指数
1
解决办法
1895
查看次数

rails 4资产管道图像子目录

我知道这可能是一个简单的问题,但我很难过.

我正在处理的应用程序包含如下资产:

app
--assets
----fonts
----images
----javascripts
Run Code Online (Sandbox Code Playgroud)

我喜欢有效地组织资产以避免混乱,所以我试图像这样分解图像:

app
--assets
----fonts
----images
------icons
------views
--------home
--------admin
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想引用图像,image.png而不必在资产前添加文件夹路径views/home/image.png,我相信尽管不能像开箱即用那样设置.

ruby-on-rails asset-pipeline ruby-on-rails-4

14
推荐指数
2
解决办法
6937
查看次数

基于联系人标签的 Gmail 过滤器

我有一堆与 Gmail 中的标签相关联的联系人。我想设置一个过滤器来标记或删除与标签中的那些联系人无关的所有消息。有没有人找到办法做到这一点?

示例https://snipboard.io/wLvuZt.jpg

search gmail filter

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

自制啤酒医生失败的消息

我正在通过我的家庭酿造医生的消息,无论我做什么,我似乎无法删除此消息:

警告:您对Homebrew的核心有未提交的修改.

除非你知道自己在做什么,否则你应该运行: cd /usr/local && git reset --hard

有没有人知道如何摆脱这个?

来自git status/usr/local

#   Library/Aliases/dwarffortress
#   Library/Aliases/ultima4
#   Library/Aliases/ultima7
#   Library/Contributions/examples/
#   Library/Formula/abfind.rb
#   Library/Formula/abuse.rb
#   Library/Formula/akonadi.rb
#   Library/Formula/angband.rb
#   Library/Formula/apc.rb
#   Library/Formula/aqua-less.rb
#   Library/Formula/argp-standalone.rb
#   Library/Formula/attica.rb
#   Library/Formula/bashreduce.rb
#   Library/Formula/c10t.rb
#   Library/Formula/chocolate-doom.rb
#   Library/Formula/cmigemo.rb
#   Library/Formula/coffee-script.rb
#   Library/Formula/csstidy.rb
#   Library/Formula/dosbox.rb
#   Library/Formula/dotless.rb
#   Library/Formula/dwarf-fortress.rb
#   Library/Formula/exult.rb
#   Library/Formula/flip.rb
#   Library/Formula/frobtads.rb
#   Library/Formula/frotz.rb
#   Library/Formula/gearman-php.rb
#   Library/Formula/gnu-chess.rb
#   Library/Formula/gnu-go.rb
#   Library/Formula/growlme.rb
#   Library/Formula/imagick.rb
#   Library/Formula/inform6.rb
#   Library/Formula/jnethack.rb
#   Library/Formula/jwhois.rb
#   Library/Formula/kde-phonon.rb …
Run Code Online (Sandbox Code Playgroud)

macos homebrew

9
推荐指数
1
解决办法
7827
查看次数

rails 4 activerecord TypeError nil不是符号

看来sql server中的表放在nilselect语句中.我不知道如何解决这个问题,如果我切换到任何其他表,我可以轻松获取第一条记录.还有其他人处理过这个bug吗?我把桌子分开并构建了一个视图.它仍然这样做.我很犹豫猴子补丁这个.想法?我如何连接到SQL服务器:

我的模特:

class Deal < ActiveRecord::Base
  self.table_name = 'vwStorePromosExtSummaryGlobal'
end
Run Code Online (Sandbox Code Playgroud)

我的控制器:

class V1::DealsController < ApplicationController
    def by_mall_id
      deals = Deal.where(mallid: params[:id])
      render json: deals
    end
end

# Use sqlserver as the database for Active Record
gem 'tiny_tds', '~> 0.6.1'
gem 'activerecord-sqlserver-adapter', github: 'arthrex/activerecord-sqlserver-adapter'
gem 'active_model_serializers', '~> 0.8.1'
Run Code Online (Sandbox Code Playgroud)

当我打开宝石中的确切错误时,我看到:

     97:     def serializable_hash(options = nil)
     98:       options ||= {}
     99:
    100:       attribute_names = attributes.keys
    101:       if only = options[:only]
    102:         attribute_names &= Array(only).map(&:to_s)
    103:       elsif except = options[:except]
    104: …
Run Code Online (Sandbox Code Playgroud)

ruby sql-server activerecord ruby-on-rails

8
推荐指数
1
解决办法
9994
查看次数

如何解析JSON响应以构建其他Paw请求?

https://paw.cloud/

我从不同的API端点返回以下JSON:

[
  {
    "id": 1,
    "name": "BigCartel",
    "slug": "bigcartel",
    "logo_cdn_url": "http://placehold.it/200x200",
    "active": true,
    "authentication_type": {
      "description": "Oauth Authentication Token",
      "slug": "oauthauthenticationtoken"
    }
  },
  {
    "id": 2,
    "name": "Lightspeed Retail",
    "slug": "lightspeed_retail",
    "logo_cdn_url": "http://placehold.it/200x200",
    "active": true,
    "authentication_type": {
      "description": "Oauth Authentication Token",
      "slug": "oauthauthenticationtoken"
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

我想解析这个JSON并在爪子应用程序的另一部分中使用它.有没有人找到这样的例子?我正在尝试自定义JS文本,但这似乎是一个死胡同.

json paw-app

8
推荐指数
1
解决办法
585
查看次数

rails 4.1将视频文件夹添加到资产管道

这是我到目前为止的路径:

assets
>fonts
>images
>stylesheets
>javascripts
>videos
Run Code Online (Sandbox Code Playgroud)

我想在视频文件夹下播放视频,但我似乎无法让它们显示出来.我当前的assets.rb初始化程序如下:

Rails.application.config.assets.precompile += %w( layout-home.css layout-error.css layout-static-page.css layout-brand.css )
Rails.application.config.assets.precompile += %w( layout-home.js layout-static-page.js layout-brand.js )
Rails.application.config.assets.precompile += [ Dir.glob("#{Rails.root}/app/assets/videos/**/") ]
Run Code Online (Sandbox Code Playgroud)

关于如何调整这个的任何想法?无论我如何调整最后一行,我都无法让他们进入.

ruby-on-rails asset-pipeline

7
推荐指数
1
解决办法
3934
查看次数

rails 4 log4r server.rb:78:在`start'中:未定义的方法`formatter'

我一直在研究这个话题已经太久了,所以我必须发布这个.我有几个应用程序运行此设置,其中一个完全borks在rails启动(rails s).它们的配置几乎完全相同,但我似乎无法在大海捞针中找到它.有没有人对如何找到这个问题有任何指示?

设置基于:http://blog.mmlac.com/log4r-for-rails/comment-page-1/#comment-1731

当我尝试运行rails s时:

=> Booting WEBrick
=> Rails 4.0.0 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Exiting
/Users/chrishough/Placewise/code/ApiDigest/.bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/commands/server.rb:78:in `start': undefined method `formatter' for #<Log4r::Logger:0x007f85be89abe8> (NoMethodError)
    from /Users/chrishough/Placewise/code/ApiDigest/.bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:78:in `block in <top (required)>'
    from /Users/chrishough/Placewise/code/ApiDigest/.bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:73:in `tap'
    from /Users/chrishough/Placewise/code/ApiDigest/.bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:73:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我如何在application.rb文件中配置log4r:

#log4r requirements
require 'log4r'
require 'log4r/yamlconfigurator'
require 'log4r/outputter/datefileoutputter'
include Log4r

module DigestApi
  class Application < Rails::Application
    # …
Run Code Online (Sandbox Code Playgroud)

ruby log4r ruby-on-rails-4

6
推荐指数
2
解决办法
2513
查看次数

Passenger Rails 4 App Startup =未初始化的常量ActiveModel :: Serializer

我知道这是一个奇怪的请求,但我是乘客的新手,我无法确定在哪里解决他的错误.Cap部署到服务器就好了,但即使重启后应用程序也无法启动.我该从哪里开始?

此外,这是passenger.log.应用程序development.log完全为空.

我应该添加这是一个我远程访问的ubuntu 12.04服务器.我们使用上限和厨师设置盒子.如果您想知道,我已经查看了这个链接:https://github.com/phusion/passenger/wiki/Debugging-application-startup-problems

deploy@apitest:/home/apps/digest/current/log$ tail -f passenger.log
  /home/apps/digest/shared/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval'
  /home/apps/digest/shared/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:55:in `initialize'
  config.ru:1:in `new'
  config.ru:1:in `<main>'
  /home/apps/digest/shared/bundle/ruby/2.0.0/gems/passenger-4.0.20/helper-scripts/rack-preloader.rb:105:in `eval'
  /home/apps/digest/shared/bundle/ruby/2.0.0/gems/passenger-4.0.20/helper-scripts/rack-preloader.rb:105:in `preload_app'
  /home/apps/digest/shared/bundle/ruby/2.0.0/gems/passenger-4.0.20/helper-scripts/rack-preloader.rb:150:in `<module:App>'
  /home/apps/digest/shared/bundle/ruby/2.0.0/gems/passenger-4.0.20/helper-scripts/rack-preloader.rb:29:in `<module:PhusionPassenger>'
  /home/apps/digest/shared/bundle/ruby/2.0.0/gems/passenger-4.0.20/helper-scripts/rack-preloader.rb:28:in `<main>'

[ 2014-04-17 20:08:52.1202 2620/7f2f2407a700 Pool2/Spawner.h:738 ]: [App 6300 stdout]
[ 2014-04-17 20:08:55.1191 2620/7f2f2407a700 Pool2/Implementation.cpp:849 ]: Could not spawn process for group /home/apps/digest/current#default: An error occured while starting up the preloader.
     in 'void Passenger::ApplicationPool2::SmartSpawner::handleErrorResponse(Passenger::ApplicationPool2::SmartSpawner::StartupDetails&)' (SmartSpawner.h:455)
     in 'std::string Passenger::ApplicationPool2::SmartSpawner::negotiatePreloaderStartup(Passenger::ApplicationPool2::SmartSpawner::StartupDetails&)' (SmartSpawner.h:558)
     in 'void Passenger::ApplicationPool2::SmartSpawner::startPreloader()' (SmartSpawner.h:206)
     in 'virtual Passenger::ApplicationPool2::ProcessPtr Passenger::ApplicationPool2::SmartSpawner::spawn(const Passenger::ApplicationPool2::Options&)' (SmartSpawner.h:744)
     in 'void …
Run Code Online (Sandbox Code Playgroud)

capistrano ruby-on-rails passenger chef-infra

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