小编mar*_*nza的帖子

如何衡量Ruby对象的大小?

我有Memcache问题,我想知道什么是了解我创建的对象有多大的最佳方法.

我唯一的解决方案是将它们放入Memcache中,以字节显示它们的大小(顺便说一下,我可以自定义Memcache的输出吗?我想要可读的千字节......).

谢谢,

凯文

ruby memcached

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

在Rails 3应用程序中使用jQuery-UJS进行远程link_to时出现分析器错误:我该如何调试?

我正在尝试使用Rails 3 remote_link :remote => true和jQuery 单击链接后替换div的内容.

到目前为止,我已经能够在使用200 HTTP代码响应时让控制器呈现正确的部分.我设置了一些回调来找到问题的根源:

jQuery(function($) {
    $("#follow-link").bind("ajax:before", function() {
        console.log("ajax:before");
    });

    $("#follow-link").bind("ajax:success", function(data, status, xhr) {
        console.log("ajax:success");
    });

    $("#follow-link").bind("ajax:complete", function() {
        console.log("ajax:complete");
    });

    $("#follow-link").bind("ajax:error", function(xhr, status, error) {
        console.log("ajax:error");
        console.log(error);
    });
});
Run Code Online (Sandbox Code Playgroud)

虽然before并且complete被触发,success但是并且error输出"parsererror".我在Safari的开发人员工具中检查响应时得到的内容是一个简单的字符串.

为什么会引发一个parsererror?如何获得有关导致此错误的更多信息?

ajax jquery ruby-on-rails

9
推荐指数
3
解决办法
5050
查看次数

为现有的PostgreSQL索引添加唯一约束

我的PostgreSQL 9.3数据库中有一个索引:

CREATE INDEX index_foos_on_bar_and_baz ON foos USING btree (bar, baz);
Run Code Online (Sandbox Code Playgroud)

(来自使用Ruby on Rails的模式迁移)

索引存在并使事情变得更快.既然我已经清理了重复的foos,我想让这个索引变得独一无二:

CREATE UNIQUE INDEX index_foos_on_bar_and_baz ON foos USING btree (bar, baz);
Run Code Online (Sandbox Code Playgroud)

有没有办法改变现有的索引并使其独一无二?或者更容易/更快地删除现有索引并创建一个新的独特索引?

sql postgresql indexing ruby-on-rails unique-constraint

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

如何完全重新加载ActiveRecord?

在RSpec测试中,我创建了一个具有多个memoizied值的记录.

foo.reload 对于对象的属性按预期工作,但仍然存在已记忆的属性.

到目前为止,它通过完全重新创建对象来工作:foo = Foo.find(123)但在我的情况下,查找记录的逻辑实际上更复杂.

什么是完全重新加载记录并擦除所有记忆值的好方法?

ruby activerecord rspec ruby-on-rails

7
推荐指数
2
解决办法
1511
查看次数

如何使用Ruby HTTP :: Net处理404错误?

我正在尝试解析网页,但有时会出现404错误.这是我用来获取网页的代码:

result = Net::HTTP::get URI.parse(URI.escape(url))
Run Code Online (Sandbox Code Playgroud)

如何测试是否result为404错误代码?

ruby http

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

在 RSpec 中使用 Thread.new 测试并发性

我正在尝试围绕并发性进行测试。最终目标是使用skips lockedPostgreSQL 中的ActiveRecord记录测试服务。

这在两个控制台中都很有效:

# in console 1
queue = MyFancyQueue.first
item_1 = queue.items.first
item_1.with_lock { sleep 30 } # locks item_1 for 30 seconds

# in console 2, while item_1 is locked
queue = MyFancyQueue.first
queue.items.first # => item_1
queue.items.lock('FOR UPDATE SKIP LOCKED').first # => item_2
Run Code Online (Sandbox Code Playgroud)

但是,使用 RSpec,我在 a 中运行的任何代码Thread.new都找不到任何记录,例如:

let(:queue) { MyFancyQueue.create }
let!(:items) { create_list(:item, 2, queue: queue) }

context 'with first item locked' do
  it 'returns the second item' …
Run Code Online (Sandbox Code Playgroud)

ruby postgresql multithreading rspec ruby-on-rails

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

如何重播生产克隆上的Web请求以控制候选发布版?

我有一个关键的Rails应用程序在生产中运行,具有相当标准的设置:Rails 5 API,Puma,PostgreSQL,Sidekiq,Heroku.我还有一个涉及风险数据库迁移和应用程序代码更改的分支.

我想将生产设置和数据克隆到专用的临时环境中,并且在繁忙的几个小时内,在两个环境中运行所有生产Web请求以控制此更改对数据的影响.

到目前为止我想到的事情:

  • 这不仅仅是关于重放数据库日志,因为更改发生在应用程序级别
  • 一些API请求在将来1分钟安排一些Sidekiq作业,因此理想情况下这也会实时触发作业
  • 如果这是在Heroku路由器或应用程序级别而不是更高的链(DNS,负载平衡器等)完成的话会很棒:我可以看到主应用程序中的Rake中间件镜像了对此生产克隆的所有请求,或after_action选择Rails控制器中的过滤器

我控制这些更改的一种方法是查看生产克隆引发的错误(应用程序错误和数据库回滚).

ruby postgresql ruby-on-rails heroku

5
推荐指数
0
解决办法
207
查看次数

如何使用Ruby on Rails找到今天,昨天等的记录?

我想找到所有的记录,比如Posts,今天用Ruby on Rails创建,然后是昨天创建的所有帖子,等等......我该怎么办?

谢谢,

凯文

activerecord datetime ruby-on-rails date

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

如何将公共API添加到Rails应用程序?

我想打开我的Rails 2.3应用程序(在Heroku上托管)给开发人员.我想到了两种方法:

  1. 使用respond_to |格式| 应用程序,以及只允许授权开发人员API密钥的before_filter
  2. 使用专用于API的第二个Heroku帐户,共享原始应用程序的数据库.现在,更好的是:Rails,Sinatra还是Grape

我知道这是一个模糊的问题.你有什么好的文章或建筑模式可以帮助我吗?

谢谢,

凯文

ruby api ruby-on-rails sinatra grape-api

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

在Active Record查询中包括Active Storage附件

使用Rails 5.2和Active Storage,我设置了Item一些类images

class Item < ApplicationRecord
  has_many_attached :images
end
Run Code Online (Sandbox Code Playgroud)

我想用来ActiveRecord::QueryMethods.includes向,加载images标准的Rails东西has_many,但是:

Item.includes(:images)
=> ActiveRecord::AssociationNotFoundError ("Association named 'images' was not found on Item; perhaps you misspelled it?")

Item.includes(:attachments)
=> ActiveRecord::AssociationNotFoundError ("Association named 'attachments' was not found on Item; perhaps you misspelled it?")

Item.includes(:active_storage_attachments)
=> ActiveRecord::AssociationNotFoundError ("Association named 'active_storage_attachments' was not found on Item; perhaps you misspelled it?")
Run Code Online (Sandbox Code Playgroud)

任何想法如何使其工作?

activerecord ruby-on-rails rails-activestorage

3
推荐指数
2
解决办法
423
查看次数

如何在Ruby中找到n个数组的交集?

[1, 2, 3] & [2, 3, 4]给我们[2, 3]但是你如何得到n个数组的交集?

[[1, 2, 3], [2, 3, 4], [1, 3, 4]].something 会给 [3]

循环&工作但必须有更好的方法.

ruby arrays

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