小编gin*_*ime的帖子

rails bundle仅安装生产

抱歉,如果这是一个RTFM类型的问题,但我仍然是rails/ruby​​/bundler的新手,我有点困惑.

在我们的config/application.rb文件中有这个捆绑器段:

if defined?(Bundler)         
  # If you precompile assets before deploying to production, use this line
  Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end
Run Code Online (Sandbox Code Playgroud)

在我们中Gemfile我们使用不同的群体,例如

group :development, :test do
  gem "rspec-rails", ">= 2.7.0", :group => [:development, :test]
  gem 'shoulda-matchers'
  gem 'watchr'
  gem 'spork', '~> 1.0rc'
  gem 'spectator'                          
  gem 'debugger'
  gem 'wirble'
end
Run Code Online (Sandbox Code Playgroud)

但是当我运行RAILS_ENV=production bundle install(或bundle install --deployment)时,它仍然会从开发/测试组中安装宝石......

为什么会发生这种情况或如何使其正常工作?

bundler ruby-on-rails-3

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

模拟条带订阅续订失败

我正在尝试测试不同的Stripe Subscription失败.具体而言,当最初的卡被接受并且订阅处于活动状态时更新活动订阅时会发生什么,但续订付款被拒绝,或者客户在订阅期间删除了卡.

在Stripe上模拟这个的最佳方法是什么?

testing simulate stripe-payments

21
推荐指数
1
解决办法
3249
查看次数

石墨总结了数据点

我正在使用石墨来收集数据,我想在一段时间内检索某些事件的总数.比如说,每周登录次数.

但是,我只需要总数,而不需要看它是如何随着时间的推移而发展的.

当我使用像那样的东西时,from=-1w&target=summarize(stats.events.login.success,"1w")&format=json我仍然得到两个数据点,而不是一个.

有没有办法从函数中获取单个数据点summarize?或使用不同的函数返回单个数据点值?

graphite

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

在django queryset上使用iterator()

我最近遇到了一些奇怪的行为,需要检查一下我的理解.

我在模型中使用了一个简单的过滤器,然后迭代结果.

例如

allbooks = Book.objects.filter(author='A.A. Milne')

for book in allbooks:
   do_something(book)
Run Code Online (Sandbox Code Playgroud)

奇怪的是,它只返回了部分书籍清单.

但是,当使用相同的代码并使用iterator()时,这似乎运行良好.

for book in allbooks.iterator():
    do_something(book)
Run Code Online (Sandbox Code Playgroud)

知道为什么??

ps我确实浏览了django文档,但看不到qeuryset如何在其他任何地方缓存...

iterator() 计算QuerySet(通过执行查询)并在结果上返回迭代器.QuerySet通常在内部缓存其结果,以便重复的评估不会导致其他查询; iterator()而是直接读取结果,而不在QuerySet级别进行任何缓存.对于返回大量对象的QuerySet,这通常会带来更好的性能并显着降低内存

请注意,iterator()在已经评估过的QuerySet 上使用将强制它再次进行评估,重复查询.

django iterator django-queryset

14
推荐指数
1
解决办法
3万
查看次数

演员模特是否仅限于特定语言?

我正在阅读一篇关于erlang和演员模型的有趣博客文章.我还听说scala支持actor模型.从我到目前为止收集到的那些小东西开始,actor模型将处理分解成通过传递消息相互通信的组件.通常,这些过程是不可变的.

在架构级别,这些功能是特定语言还是更多?更具体地说,你不能只用几乎任何语言实现相同的actor模型,只是使用某种形式的消息队列来在工作进程之间传递消息吗?(例如,使用像芹菜这样的东西).或者像erlang和scala这样的语言是否只是透明地,更快地完成了这个?

architecture erlang scala actor

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

改善Rails加载时间

这是关于改进rails控制台加载时间的上一个问题的后续内容.

第一个伟大的建议是弄清楚哪些宝石需要太长时间.

下一个答案,建议稍后使用:require => nil加载这些宝石.

然而,对于一些宝石,如何在不破坏事物的情况下完成此任务并不完全清楚.这是我们"最大的罪犯"的列表,我想知道是否有人可以建议最好的方法只在必要时加载它们?

require gon: 2.730000 (2.870059)
require omniauth-openid: 1.410000 (1.503858)
require cancan: 2.640000 (2.707467)
require fog: 2.730000 (2.846530)
require activeadmin: 3.650000 (3.923877)
Run Code Online (Sandbox Code Playgroud)

当然还有更多需要大约1秒或更短的时间,这也加起来......但至少删除大的东西会改善一些事情.

如何在以后选择性地加载宝石以使轨道加载更快?

performance ruby-on-rails-3

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

用constantize在ruby中远程执行代码

我正在尝试contantize使用ruby/rails中的远程代码执行漏洞.

我知道能够为服务器提供任何类名可能是有潜在危险的,但我想知道这本身是否危险.

例如,如果rails控制器代码看起来像这样(即在实例化对象上执行硬编码方法):

klass = params[:class].classify.constantize
klass.do_something_with_id(params[:id]) if klass.respond_to?('do_something_with_id')
Run Code Online (Sandbox Code Playgroud)

这段代码容易受到攻击 或者只是结合能够同时指定要在类上调用的方法?

ruby security ruby-on-rails

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

神秘的铁轨错误,几乎没有任何痕迹

我们遇到一个爬虫的奇怪问题.有时它会Rails FATAL在某些请求上抛出错误,但跟踪非常有限并且看起来像这样

[2014-07-01 18:16:37] FATAL Rails :
ArgumentError (invalid %-encoding (c ^   FK+ 9u$_    t  Kl
?E!   =k \  ?* ?>c+<O   ?o ?> C     R! 2 D  (5      x q#!` 4 p      |8 I   E
:+   H^9`^ #    Vo{   >

  =[z     )):
  lib/locale_middleware.rb:14:in `call'
Run Code Online (Sandbox Code Playgroud)

爬虫用户代理是

Mozilla/5.0 (compatible; EasouSpider; +http://www.easou.com/search/spider.html)

我们可以要求它停止通过我们爬行robots.txt,但是如果可能的话,最好处理根本原因并且不会因为这些请求而失败500.

我们也无法真正重现这种请求,因此有关如何生成类似请求的任何建议都会有很大帮助.

我们在Ubuntu 12.04上使用Rails 3.2.19,Unicorn.这是我们的locale_middleware.rb

encoding ruby-on-rails web-crawler fatal-error

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

ruby,openssl,unicorn,systemd(Gcloud)非常奇怪的行为

我们开始在日志中看到一些奇怪的错误,这些错误通常在使用OpenSSL未正确编译ruby时出现.但它不一致 ......

我们收到的错误如下:

我们设法在使用service unicorn start或启动独角兽时重现它systemctl start unicorn.但只有一些要求......不是全部.一些使用OpenSSL的请求确实有效.其他人没有.

但是,当我们开始独角兽时/etc/init.d/unicorn start,一切都顺利进行.(澄清一下,systemd启动相同的/etc/init.d脚本)

我们尝试调试ENV变量,用户权限,文件/目录所有权,重新编译ruby,从头开始引导新服务器......似乎没有任何帮助.

如果这有帮助:

我们缺少什么?我们可以尝试什么,我们没有想到的?

更新1

  • 输出一些调试命令,例如OpenSSL,ruby等
  • 正在init.d脚本中设置PATH
  • unicorn正在通过su执行到www-data用户
  • 当我们使用这个unicorn.service文件时会发生同样的问题/etc/systemd/system
  • 我们在Gcloud上运行Ubuntu 16.04
  • Ruby 没有安装apt(显式删除,以防平台预先安装)并从头开始编译.我们目前运行2.3.4并尝试2.3.6.手动编译或使用ruby-build编译.不rbenv,也不是RVM.
  • 我们安装libssl-dev via apt(我们apt-get install -y autoconf bison build-essential libssl-dev …

ruby openssl init.d unicorn systemd

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

查克诺里斯推特小部件正在失去IE的风格

在IE上异步加载twitter小部件时遇到一个奇怪的问题.它加载得很好,但由于某种原因不适用于IE(7,8,9)上的任何样式(颜色,背景为空白/默认).

以标准方式加载脚本也适用于IE.

代码看起来像这样,适用于所有浏览器(包括IE,但没有样式)

<div id="twitter_div"></div>
<script>
    jQuery(window).load(function () {
        jQuery('<link rel="stylesheet" type="text/css" href="http://widgets.twimg.com/j/2/widget.css" >').appendTo("head");
        jQuery.getScript('http://widgets.twimg.com/j/2/widget.js', function () {
            var twitter = new TWTR.Widget({
              id: 'twitter_div',
              version: 2,
              type: 'profile',
              rpp: 4,
              interval: 6000,
              width: 'auto',
              height: 300,
              theme: {
                shell: {
                  background: '#add459',
                  color: '#382638'
                },  
                tweets: {
                  background: '#ffffff',
                  color: '#141114',
                  links: '#4aed05'
                }   
              },  
              features: {
                scrollbar: false,
                loop: false,
                live: false,
                hashtags: true,
                timestamp: true,
                avatars: false,
                behavior: 'all'
              }   
            }).render().setUser('chucknorris').start();
        })
    })
</script>
Run Code Online (Sandbox Code Playgroud)

你可以在这个链接上看到这个. …

javascript css jquery asynchronous

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