小编rol*_*usa的帖子

获取MongoDB中列的最高值

我一直在帮助获取mongo文档列的最高值.我可以对它进行排序并获得顶部/底部,但我很确定有更好的方法可以做到这一点.

我尝试了以下(和不同的组合):

transactions.find("id" => x).max({"sellprice" => 0})
Run Code Online (Sandbox Code Playgroud)

但它一直在抛出错误.除了排序和获得顶部/底部之外,有什么好的方法呢?

谢谢!

ruby mongodb mongodb-ruby

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

Sidekiq错误未初始化常量

我和sidekiq有问题.基本上我们NameError: uninitialized constant正在进行我们的sidekiq设置,导致大量作业失败.

错误日志说:

NameError: uninitialized constant GameUser::Lock
/data/@myapp/releases/20130321230952/app/models/game_user.rb:71:in `node_calls_base_get_user'
/data/@myapp/shared/bundled_gems/ruby/1.9.1/gems/sidekiq-2.8.0/lib/sidekiq/processor.rb:45:in `block (3 levels) in process'
/data/@myapp/shared/bundled_gems/ruby/1.9.1/gems/sidekiq-2.8.0/lib/sidekiq/middleware/chain.rb:109:in `call'
Run Code Online (Sandbox Code Playgroud)

代码在这里:

# app/models/game_user.rb
def self.node_calls_base_get_user(serial, game_name)
  if Lock.get("user:#{id}") # Set up lock to prevent multiple users to be created      
    Lock.delete("user:#{id}")
  end
  return false
end
Run Code Online (Sandbox Code Playgroud)

锁定在库中定义:

# lib/lock.rb
class Lock
  def self.get(key)
    lock = CACHE.add("lock:#{key}", 1, 5) # Let lock autoexpire after 5 seconds
    return true
  end
end
Run Code Online (Sandbox Code Playgroud)

并且lib /文件夹会自动加载其余配置.

module Myapp
  class Application < Rails::Application
    ...
    # Custom directories with …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails-3 sidekiq

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

在部分via = yield内渲染内容

我正在使用ruby在rails上创建一个应用程序,其中有一个项目/ _item.html.erb.partial内部是一个yield语句,所以我可以根据需要添加额外的内容.在这种情况下,我想根据视图调用部分向项目添加特定按钮.

这是我试过的,它渲染部分,但它不渲染块:

_item.html.erb

<%= yield if block_given? %>
<div>
  <%= item.name %>
</div>
Run Code Online (Sandbox Code Playgroud)

someview.html.erb

...

<% render(:partial => 'items/item', :collection => current_user.items do %>
  <%= "HELLO" %>      
<% end %>

...
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用content_for和其他一些东西但没有成功.有没有办法能够在部分通过收益率内呈现特定内容?我目前正在使用Rails3

编辑:

我发现它是:集合哈希使得无法插入块.

这两段代码都有效:

<%= render :layout => 'items/item' do %>
      Hello world      
<% end %>

<%= render :layout => 'items/item', :locals => {:item => current_user.items.first} do %>
  Hello world      
<% end %>
Run Code Online (Sandbox Code Playgroud)

这意味着如果我做了一个.我可以完成我想要的东西,但这将是丑陋的代码.有人知道解决这个问题吗?

ruby-on-rails partials ruby-on-rails-3

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

是否有Ruby 1.8.7 time.strftime%z错误?

我遇到了Ruby 1.8.7 strftime的问题,其中%z在我将时间转换为UTC后返回本地时间.

我正在做以下事情:

>> t = Time.now
=> Mon Dec 19 15:20:16 -0800 2011
>> t.strftime("%z")
=> "-0800"

>> t = Time.now.utc
=> Mon Dec 19 23:20:28 UTC 2011
>> t.strftime("%z")
=> "-0800"
Run Code Online (Sandbox Code Playgroud)

即使我将时间更改为UTC,格式化的时区也会默认为我的本地PST -0800.

这是一个已知的问题?有办法解决吗?

ruby timezone ruby-on-rails ruby-1.8

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

如何查看redis端口和实例sidekiq连接的是什么?

我正在使用sidekiq和redis.我试图找出并调试一些问题,但为此,我想知道sidekiq连接到哪个URL.我知道我可以在我设置我的服务器和客户端的文件中检查它,但是有一个函数我可以使用ala Resque.redis来显示redis实例sidekiq连接到什么?

提前致谢!

ruby redis sidekiq

4
推荐指数
2
解决办法
2906
查看次数